#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.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 (!any_of(adj[a].begin(), adj[a].end(), [&](int x) {return x == b;})) {
adj[a].push_back(b);
adj[b].push_back(a);
} else {
adj[a].erase(find(adj[a].begin(), adj[a].end(), b));
adj[b].erase(find(adj[b].begin(), adj[b].end(), 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... |