Submission #1055883

#TimeUsernameProblemLanguageResultExecution timeMemory
1055883TAhmed33The Potion of Great Power (CEOI20_potion)C++17
17 / 100
3045 ms29560 KiB
#include <bits/stdc++.h> using namespace std; #pragma GCC optimize ("Ofast") //#include "grader.cpp" const int MAXN = 2e5 + 25; const int B = 300; int n, d, h[MAXN]; void init(int N, int D, int H[]) { n = N; d = D; for (int i = 0; i < n; i++) { h[i] = H[i]; } } int u, a[MAXN], b[MAXN]; vector <int> ii[MAXN]; vector <pair <int, vector <int>>> ls[MAXN]; int cnt[MAXN]; void curseChanges(int U, int A[], int BB[]) { u = U; for (int i = 0; i < u; i++) { a[i] = A[i]; b[i] = BB[i]; } for (int i = 0; i < n; i++) { ls[i].push_back({-1, {}}); } vector <int> adj2[n]; for (int i = 0; i < u; i++) { cnt[a[i]]++; cnt[b[i]]++; ii[a[i]].push_back(i); ii[b[i]].push_back(i); adj2[a[i]].push_back(b[i]); adj2[b[i]].push_back(a[i]); if (cnt[a[i]] % B == 0) { ls[a[i]].push_back({i, adj2[a[i]]}); } if (cnt[b[i]] % B == 0) { ls[b[i]].push_back({i, adj2[b[i]]}); } } } const int inf = 1e9; set <int> get (int x, int y) { set <int> cur; for (int i = 0; i < y; i++) { if (a[i] == x) { if (cur.count(b[i])) { cur.erase(b[i]); } else { cur.insert(b[i]); } } if (b[i] == x) { if (cur.count(a[i])) { cur.erase(a[i]); } else { cur.insert(a[i]); } } } set <int> dd; for (auto i : cur) { dd.insert(h[i]); } return dd; } int question (int x, int y, int v) { auto xx = get(x, v), yy = get(y, v); int mn = inf; for (auto i : xx) { auto k = yy.lower_bound(i); if (k != yy.end()) { mn = min(mn, abs(i - *k)); } if (k != yy.begin()) { k--; mn = min(mn, abs(i - *k)); } } return mn; }
#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...