Submission #1186652

#TimeUsernameProblemLanguageResultExecution timeMemory
118665212345678The Potion of Great Power (CEOI20_potion)C++20
14 / 100
2718 ms27852 KiB
#include <bits/stdc++.h> using namespace std; const int nx=1e5+5; int n, m; vector<int> h, u, v; set<pair<int, int>> s[nx]; void init(int N, int D, int H[]) { n=N; for (int i=0; i<n; i++) h.push_back(H[i]); } void curseChanges(int U, int A[], int B[]) { m=U; for (int i=0; i<m; i++) u.push_back(A[i]), v.push_back(B[i]); for (int i=0; i<m; i++) { if (s[u[i]].find({h[v[i]], v[i]})==s[u[i]].end()) s[u[i]].insert({h[v[i]], v[i]}); else s[u[i]].erase({h[v[i]], v[i]}); swap(u[i], v[i]); if (s[u[i]].find({h[v[i]], v[i]})==s[u[i]].end()) s[u[i]].insert({h[v[i]], v[i]}); else s[u[i]].erase({h[v[i]], v[i]}); } } int question(int x, int y, int d) { int res=1e9; for (auto [hx, idxx]:s[x]) { auto itr=s[y].upper_bound({hx, 0}); if (itr!=s[y].end()) res=min(res, itr->first-hx); if (itr!=s[y].begin()) res=min(res, hx-prev(itr)->first); } 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...