Submission #1186652

#TimeUsernameProblemLanguageResultExecution timeMemory
118665212345678The Potion of Great Power (CEOI20_potion)C++20
14 / 100
2718 ms27852 KiB
#include <bits/stdc++.h>

using namespace std;

const int nx=1e5+5;

int n, m;
vector<int> h, u, v;
set<pair<int, int>> s[nx];

void init(int N, int D, int H[]) {
    n=N;
    for (int i=0; i<n; i++) h.push_back(H[i]);
}

void curseChanges(int U, int A[], int B[]) {
    m=U;
    for (int i=0; i<m; i++) u.push_back(A[i]), v.push_back(B[i]);
    for (int i=0; i<m; i++)
    {
        if (s[u[i]].find({h[v[i]], v[i]})==s[u[i]].end()) s[u[i]].insert({h[v[i]], v[i]});
        else s[u[i]].erase({h[v[i]], v[i]});
        swap(u[i], v[i]);
        if (s[u[i]].find({h[v[i]], v[i]})==s[u[i]].end()) s[u[i]].insert({h[v[i]], v[i]});
        else s[u[i]].erase({h[v[i]], v[i]});
    }
}

int question(int x, int y, int d) {
    int res=1e9;
    for (auto [hx, idxx]:s[x]) 
    {
        auto itr=s[y].upper_bound({hx, 0});
        if (itr!=s[y].end()) res=min(res, itr->first-hx);
        if (itr!=s[y].begin()) res=min(res, hx-prev(itr)->first);
    }
    return res;
}
#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...