#include <bits/stdc++.h>
#define L(i, j, k) for(int i = (j); i <= (k); i++)
#define R(i, j, k) for(int i = (j); i >= (k); i--)
#define ll long long
#define sz(a) ((int) a.size())
#define all(a) a.begin(), a.end()
#define vi vector<int>
#define pb emplace_back
#define me(a, x) memset(a, x, sizeof(a))
#define fst first
#define snd second
#define ii pair<int,int>
using namespace std;
const int MAXN=1e5+1,MAXU=2e5+1,INF=1e9;
int h[MAXN];//,a[MAXU],b[MAXU];
set<int> g[MAXN];
void init(int N, int D, int H[]) {
L(i,0,N-1)h[i]=H[i];
}
void curseChanges(int U, int A[], int B[]) {
L(i,0,U-1){
if(g[A[i]].find(B[i])!=g[A[i]].end()){
g[A[i]].erase(B[i]);
g[B[i]].erase(A[i]);
}else{
g[A[i]].insert(B[i]);
g[B[i]].insert(A[i]);
}
}
}
int question(int x, int y, int v) {
vi a,b;
for(int i:g[x])a.pb(h[i]);
for(int i:g[y])b.pb(h[i]);
sort(all(a));
a.erase(unique(all(a)),a.end());
sort(all(b));
b.erase(unique(all(b)),b.end());
int ans=INF;
L(i,0,sz(a)-1){
auto it=upper_bound(all(b),a[i]);
int v1=INF,v2=INF;
if(it!=b.end())v1=*it;
if(it!=b.begin())v2=*prev(it);
ans=min(ans,min(abs(v1-a[i]),abs(v2-a[i])));
}
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... |