Submission #342433

#TimeUsernameProblemLanguageResultExecution timeMemory
342433leinad2The Potion of Great Power (CEOI20_potion)C++17
0 / 100
3041 ms44932 KiB
#include<bits/stdc++.h> using namespace std; int n, d, X[100010], i, j, A[100010], B[100010]; set<int>adj[100010], H[100010]; set<int>::iterator it, it2; void init(int N, int D, int H[]) { n=N; d=D; for(i=0;i<n;i++)X[i]=H[i]; } void curseChanges(int U, int C[], int D[]) { for(i=0;i<n;i++)A[i]=C[i],B[i]=D[i]; } int question(int x, int y, int v) { for(i=0;i<n;i++) { adj[i].clear(); H[i].clear(); } for(i=0;i<v;i++) { if(adj[A[i]].find(B[i])==adj[A[i]].end()) { adj[A[i]].insert(B[i]); adj[B[i]].insert(A[i]); } else { adj[A[i]].erase(B[i]); adj[B[i]].erase(A[i]); } } for(i=0;i<n;i++) { for(it=adj[i].begin();it!=adj[i].end();it++) { H[i].insert(X[*it]); } } int ans=1e9; if(!adj[x].size()||!adj[y].size())return 1000000000; for(it=H[x].begin();it!=H[x].end();it++) { it2=H[y].lower_bound(*it); if(it2==H[y].end())it2--; ans=min(ans, abs(*it-*it2)); if(it2==H[y].begin()) { continue; } it2--; ans=min(ans, abs(*it-*it2)); } return ans; }
#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...