#include <bits/stdc++.h>
// #include "grader.cpp"
using namespace std;
vector<set<int>> adj_sets;
vector<vector<int>> adj;
vector<int> heights;
void init(int N, int D, int H[]) {
adj_sets.resize(N);
heights.resize(N);
for (int i = 0; i < N; i++) heights[i] = H[i];
}
int u;
void curseChanges(int U, int A[], int B[]) {
u = U;
for (int i = 0; i < U; i++) {
int a = A[i], b = B[i];// a--; b--;
if (adj_sets[a].find(b) == adj_sets[a].end()) {
adj_sets[a].insert(b);
adj_sets[b].insert(a);
} else {
adj_sets[a].erase(b);
adj_sets[b].erase(a);
}
}
adj.resize(adj_sets.size());
for (int i = 0; i < adj_sets.size(); i++) {
adj[i] = vector<int>(adj_sets[i].begin(), adj_sets[i].end());
}
}
int question(int x, int y, int v) {
// assert (v == u);
// cerr << "X = " << x << ", Y = " << y << ", V = " << v << "\n";
vector<int>& sx = adj[x];
vector<int>& sy = adj[y];
int min_diff = 1e9;
for (int a : sx) for (int b : sy) min_diff = min(min_diff, abs(heights[a] - heights[b]));
return min_diff;
}
# | 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... |