제출 #1186651

#제출 시각아이디문제언어결과실행 시간메모리
118665112345678The Potion of Great Power (CEOI20_potion)C++20
17 / 100
3067 ms27840 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]);
}

int question(int x, int y, int d) {
    int res=1e9;
    for (int i=0; i<d; 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]});
    }
    for (auto [_x, idx1]:s[x]) for (auto [_y, idx2]:s[y]) res=min(res, abs(_x-_y));
    for (int i=0; i<d; i++) s[u[i]].clear(), s[v[i]].clear();
    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...