Submission #641737

#TimeUsernameProblemLanguageResultExecution timeMemory
641737Vladth11The Potion of Great Power (CEOI20_potion)C++14
0 / 100
3028 ms26248 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 <int> events[NMAX]; int a[NMAX]; void init(int N, int D, int H[]) { for(int i = 0; i < N; i++){ a[i] = H[i]; } } void baga(int a, int b){ if(events[a].find(b) == events[a].end()) events[a].insert(b); else events[a].erase(b); } 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]); } } int question(int x, int y, int v) { int minim = 1e9; if(events[x].size() == 0 || events[y].size() == 0) return minim; set <int> nou; for(auto p : events[x]){ nou.insert(a[p]); } for(auto p : events[y]){ int val = a[p]; auto it = nou.lower_bound(val); if(it != nou.end()){ minim = min(minim, abs((*it) - val)); } it = nou.upper_bound(val); if(it != nou.begin()){ it = prev(it); minim = min(minim, abs((*it) - val)); } } return minim; }
#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...