제출 #1299126

#제출 시각아이디문제언어결과실행 시간메모리
1299126PieArmyThe Potion of Great Power (CEOI20_potion)C++20
17 / 100
669 ms327680 KiB
#include<bits/stdc++.h> typedef long long ll; #define pb push_back #define fr first #define sc second #define endl '\n' using namespace std; #define mid ((left+right)>>1) int n; int h[100023]; map<int,set<int>>mp[100023]; void init(int N, int D, int H[]){ n=N; for(int i=0;i<n;i++){ h[i]=H[i]; mp[i][0]=set<int>(); } } set<int>st; void curseChanges(int U, int A[], int B[]){ for(int i=1;i<=U;i++){ int a=A[i-1],b=B[i-1]; st=(--mp[a].end())->sc; mp[a][i]=st; st=(--mp[b].end())->sc; mp[b][i]=st; if(st.count(a)){ mp[b][i].erase(a); mp[a][i].erase(b); } else{ mp[b][i].insert(a); mp[a][i].insert(b); } } } int question(int x, int y, int v){ set<int>&a=(--mp[x].upper_bound(v))->sc; set<int>&b=(--mp[y].upper_bound(v))->sc; int res=1e9; vector<pair<int,bool>>vec; for(auto x:a){ vec.pb({h[x],0}); } for(auto x:b){ vec.pb({h[x],1}); } sort(vec.begin(),vec.end()); for(int i=1;i<vec.size();i++){ if(vec[i].sc!=vec[i-1].sc){ res=min(res,abs(vec[i].fr-vec[i-1].fr)); } } vec.clear(); return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...