#include <bits/stdc++.h>
using namespace std;
#define sz(a) (int)a.size()
#define all(a) begin(a),end(a)
const int mxN = (int)1e5+10;
using ar2 = array<int,2>;
int n, m;
int a[mxN];
set<ar2> S[mxN];
void init(int N, int D, int H[]) {
n = N;
for(int i = 0; i < n; i++) a[i]=H[i];
}
void toggle(int x, int y){
if(S[x].count({a[y],y})) S[x].erase({a[y],y});
else S[x].insert({a[y],y});
}
void curseChanges(int U, int A[], int B[]) {
m = U;
for(int i = 0; i < m; i++){
int x = A[i], y = B[i];
toggle(x,y); toggle(y,x);
}
}
int question(int x, int y, int v) {
int ans = (int)1e9;
if(!sz(S[x]) or !sz(S[y])) return ans;
auto itr = begin(S[y]);
for(auto [u,v] : S[x]){
while(itr!=end(S[y]) and (*itr)[0] < u) itr++;
if(itr!=begin(S[y])) ans=min(ans, abs(u-(*prev(itr))[0]));
if(itr!=end(S[y])) ans=min(ans, abs(u-(*itr)[0]));
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |