#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define ff first
#define ss second
#define all(s) s.begin(),s.end()
#define rall(s) s.rbegin(),s.rend()
const int maxn=2e5+5;
namespace {
int N,D,H[maxn];
int U,A[maxn],B[maxn];
map<pair<int,int>,bool>mp;
vector<int>g[maxn];
int cnt[maxn];
}
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[]) {
::U=U;
for(int i=0;i<U;i++){
if(A[i]>B[i]) swap(A[i],B[i]);
::A[i]=A[i];
::B[i]=B[i];
}
mp.clear();
for(int i=0;i<N;i++){
g[i].clear();
}
for(int i=0;i<U;i++){
if(mp[{A[i],B[i]}]==false){
mp[{A[i],B[i]}]=true;
}
else{
mp[{A[i],B[i]}]=false;
}
}
for(auto [a,t]:mp){
if(t==true){
g[a.ff].pb(a.ss);
g[a.ss].pb(a.ff);
}
}
for(int i=0;i<N;i++){
for(auto &x:g[i]){
x=H[x];
}
sort(all(g[i]));
}
}
int question(int x, int y, int v) {
int ans=1e9;
if(g[x].empty()||g[y].empty()) return ans;
{
int j=0;
for(int i=0;i<g[x].size();i++){
while(j<(int)g[y].size()&&g[y][j]<g[x][i]){
j++;
}
if(j<(int)g[y].size()){
ans=min(ans,g[y][j]-g[x][i]);
}
}
}
{
int j=0;
for(int i=0;i<g[y].size();i++){
while(j<(int)g[x].size()&&g[x][j]<g[y][i]){
j++;
}
if(j<(int)g[x].size()){
ans=min(ans,g[x][j]-g[y][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... |