제출 #641745

#제출 시각아이디문제언어결과실행 시간메모리
641745Vladth11The Potion of Great Power (CEOI20_potion)C++14
18 / 100
529 ms62872 KiB
#include <bits/stdc++.h> #define debug(x) cerr << #x << " " << x << "\n" #define debugs(x) cerr << #x << " " << x << " " using namespace std; typedef long long ll; typedef pair <int, int> pii; const int NMAX = 100001; const int VMAX = 101; const int INF = 2e9; const int MOD = 1000000007; const int BLOCK = 447; const int base = 117; const int nr_of_bits = 24; const int inv2 = 500000004; set <pair <int, pair <int, int> > > events[NMAX]; set <int> st[NMAX]; int a[NMAX]; int n; int cnt[NMAX][2]; void baga(int A, int B){ if(st[A].find(B) == st[A].end()){ st[A].insert(B); cnt[A][a[B]]++; }else{ st[A].erase(B); cnt[A][a[B]]--; } } void init(int N, int D, int H[]) { n = N; for(int i = 0; i < N; i++){ a[i] = H[i]; events[i].insert({0, {0, 0}}); } } void curseChanges(int U, int A[], int B[]) { for(int i = 0; i < U; i++){ baga(A[i], B[i]); baga(B[i], A[i]); events[A[i]].insert({i + 1, {cnt[A[i]][0], cnt[A[i]][1]}}); events[B[i]].insert({i + 1, {cnt[B[i]][0], cnt[B[i]][1]}}); } } int question(int x, int y, int v) { pii ultimX = (*prev(events[x].upper_bound({v + 1, {-1, -1}}))).second; pii ultimY = (*prev(events[y].upper_bound({v + 1, {-1, -1}}))).second; if(ultimX.first + ultimX.second == 0 || ultimY.first + ultimY.second == 0) return 1e9; if(ultimX.first > 0 && ultimY.first > 0) return 0; if(ultimX.second > 0 && ultimY.second > 0) return 0; return 1; }
#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...