#include<bits/stdc++.h>
using namespace std;
int n,d,h[200005];
vector<int>have[200005];
int inf=1e9;
void init(int N, int D, int H[]) {
    n=N,d=D;
    for(int i=0;i<n;i++){
        h[i]=H[i];
    }
}
void curseChanges(int U, int A[], int B[]) {
    map<pair<int,int>,int>mp;
    for(int i=0;i<U;i++){
        if(A[i]>B[i])swap(A[i],B[i]);
        mp[{A[i],B[i]}]^=1;
    }
    for(auto x:mp){
        if(x.second==1)have[x.first.first].push_back(x.first.second),have[x.first.second].push_back(x.first.first);
    }
}
int question(int x, int y, int v) {
    vector<int>l,r;
    for(auto a:have[x])l.push_back(h[a]);
    for(auto a:have[y])r.push_back(h[a]);
    sort(l.begin(),l.end());
    sort(r.begin(),r.end());
    int ll=-1,rr=-1;
    int ans=inf;
    /*while(1){
        if(ll==l.size()-1&&rr==r.size()-1)break;
        if(rr==r.size()-1)while(ll+1!=l.size())ans=min(ans,abs(l[ll+1]-r[rr])),ll++;
        if(ll==l.size()-1)while(rr+1!=r.size())ans=min(ans,abs(r[rr+1]-l[ll])),rr++;
        if(ll==l.size()-1&&rr==r.size()-1)break;
        if(l[ll+1]<r[rr+1]){
            if(rr>=0)ans=min(ans,abs(l[ll+1]-r[rr]));
            ll++;
        }else{
            if(ll>=0)ans=min(ans,abs(r[rr+1]-l[ll]));
            rr++;
        }
    }*/
    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... |