Submission #1325389

#TimeUsernameProblemLanguageResultExecution timeMemory
1325389shirokuma5The Potion of Great Power (CEOI20_potion)C++20
18 / 100
415 ms55408 KiB
#include<bits/stdc++.h> #define rep(i, n) for (int i = 0; i < (int)(n); i++) using namespace std; int n, d, u; vector<int> h, a, b; vector<vector<vector<int>>> lis; vector<vector<int>> lday; void chmin(int &a, int b) { if (a > b) a = b; } void init(int N, int D, int H[]) { n = N; d = D; h.resize(N); rep(i, N) h[i] = H[i]; } void curseChanges(int U, int A[], int B[]) { u = U; a.resize(U); b.resize(U); rep(i, U) { a[i] = A[i]; b[i] = B[i]; if (a[i] > b[i]) swap(a[i], b[i]); } lis.assign(n, {{0,0}}); lday.resize(n, {0}); set<pair<int, int>> se; rep(i, U) { lis[a[i]].push_back(lis[a[i]].back()); lis[b[i]].push_back(lis[b[i]].back()); lday[a[i]].push_back(i+1); lday[b[i]].push_back(i+1); if (se.count({a[i], b[i]})) { se.erase({a[i], b[i]}); lis[a[i]].back().at(h[b[i]])--; lis[b[i]].back().at(h[a[i]])--; } else { se.insert({a[i], b[i]}); lis[a[i]].back().at(h[b[i]])++; lis[b[i]].back().at(h[a[i]])++; } } } int question(int x, int y, int v) { int idx = distance(lday[x].begin(), upper_bound(lday[x].begin(), lday[x].end(), v))-1; int idy = distance(lday[y].begin(), upper_bound(lday[y].begin(), lday[y].end(), v))-1; const auto &vx = lis[x][idx], &vy = lis[y][idy]; if (vx[0] > 0 && vy[0] > 0) return 0; if (vx[1] > 0 && vy[1] > 0) return 0; if (vx[0] + vx[1] > 0 && vy[0] + vy[1] > 0) return 1; return 1e9; }
#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...