Submission #1189089

#TimeUsernameProblemLanguageResultExecution timeMemory
1189089WarinchaiThe Potion of Great Power (CEOI20_potion)C++20
17 / 100
3098 ms18440 KiB
#include<bits/stdc++.h>
using namespace std;

int n,d,h[200005];
vector<int>have[200005];
int inf=1e9;
vector<pair<int,int>>op[200005];

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[]) {
    for(int i=0;i<U;i++){
        op[A[i]].push_back({B[i],i+1});
        op[B[i]].push_back({A[i],i+1});
    }
}

int fans(vector<int>l,vector<int>r){
    int ll=-1,rr=-1;
    int ans=inf;
    if(l.size()==0||r.size()==0)return 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;
}

vector<int> small(int x,int v){
    //cerr<<"x,v:"<<x<<" "<<v<<"\n";
    map<pair<int,int>,int>mp;
    for(auto [id,day]:op[x]){
        if(day>v)break;
        mp[{h[id],id}]^=1;
    }
    vector<int>temp;
    for(auto x:mp){
        if(x.second==1){
            temp.push_back(x.first.first);
            //cerr<<x.first.second<<" ";
        }
    }
    //cerr<<"\n";
    return temp;
}

int question(int x, int y, int v) {
    if(v==0)return inf;
    return fans(small(x,v),small(y,v));
}
#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...