Submission #342423

#TimeUsernameProblemLanguageResultExecution timeMemory
342423leinad2The Potion of Great Power (CEOI20_potion)C++17
14 / 100
1958 ms49772 KiB
#include<bits/stdc++.h>
using namespace std;
int n, d, X[100010], i, j;
set<int>adj[100010], H[100010];
set<int>::iterator it, it2;
void init(int N, int D, int H[])
{
    n=N;
    d=D;
    for(i=0;i<n;i++)X[i]=H[i];
}
void curseChanges(int U, int A[], int B[])
{
    for(i=0;i<U;i++)
    {
        if(adj[A[i]].find(B[i])==adj[A[i]].end())
        {
            adj[A[i]].insert(B[i]);
            adj[B[i]].insert(A[i]);
        }
        else
        {
            adj[A[i]].erase(B[i]);
            adj[B[i]].erase(A[i]);
        }
    }
    for(i=0;i<n;i++)
    {
        for(it=adj[i].begin();it!=adj[i].end();it++)
        {
            H[i].insert(X[*it]);
        }
    }
}
int question(int x, int y, int v)
{
    int ans=1e9;
    if(!adj[x].size()||!adj[y].size())return 1000000000;
    for(it=H[x].begin();it!=H[x].end();it++)
    {
        it2=H[y].lower_bound(*it);
        if(it2==H[y].end())it2--;
        ans=min(ans, abs(*it-*it2));
        if(it2==H[y].begin())
        {
            continue;
        }
        it2--;
        ans=min(ans, abs(*it-*it2));
    }
    return ans;
}
#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...