#include <bits/stdc++.h>
#ifndef EVAL
#include "grader.cpp"
#endif
using namespace std;
/*
6 5 11 4
2 42 1000 54 68 234
0 1
2 0
3 4
3 5
3 5
1 3
5 3
0 5
3 0
1 3
3 5
0 3 4 26
3 0 8 0
0 5 5 1000000000
3 0 11 14
*/
namespace sOlUTiON {
constexpr int N = 1E5, M = 2E5;
int n, D;
int h[N];
vector<int> f[N];
vector<vector<int>> a[N];
};
using namespace sOlUTiON;
void init(int _N, int _D, int H[]) {
n = _N;
D = _D;
for (int i = 0; i < n; i++) {
a[i].push_back({});
f[i].push_back(0);
h[i] = H[i];
}
}
void curseChanges(int U, int A[], int B[]) {
for (int i = 0; i < U; i++) {
int u = A[i];
int v = B[i];
{
vector<int> &b = a[u].back(), w;
int j = 0;
while (j < int(b.size()) && (b[j] != v && h[b[j]] <= h[v]))
w.push_back(b[j++]);
if (j < int(b.size()) && b[j] == v) {
j++;
} else {
w.push_back(v);
}
while (j < int(b.size()))
w.push_back(b[j++]);
a[u].push_back(w);
}
{
vector<int> &b = a[v].back(), w;
int j = 0;
while (j < int(b.size()) && (b[j] != u && h[b[j]] <= h[u]))
w.push_back(b[j++]);
if (j < int(b.size()) && b[j] == u) {
j++;
} else {
w.push_back(u);
}
while (j < int(b.size()))
w.push_back(b[j++]);
a[v].push_back(w);
}
f[u].push_back(i + 1);
f[v].push_back(i + 1);
}
}
int question(int x, int y, int v) {
int p1 = upper_bound(f[x].begin(), f[x].end(), v) - f[x].begin() - 1;
int p2 = upper_bound(f[y].begin(), f[y].end(), v) - f[y].begin() - 1;
int ans = 1E9;
for (int i = 0; i < int(a[x][p1].size()); i++) {
for (int j = 0; j < int(a[y][p2].size()); j++) {
ans = min(ans, abs(h[a[x][p1][i]] - h[a[y][p2][j]]));
}
}
return ans;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
4944 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
4 ms |
5200 KB |
Output is correct |
2 |
Correct |
4 ms |
5200 KB |
Output is correct |
3 |
Correct |
3 ms |
5200 KB |
Output is correct |
4 |
Correct |
25 ms |
12180 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
432 ms |
41444 KB |
Output is correct |
2 |
Correct |
418 ms |
41272 KB |
Output is correct |
3 |
Correct |
264 ms |
45456 KB |
Output is correct |
4 |
Execution timed out |
3097 ms |
223880 KB |
Time limit exceeded |
5 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
436 ms |
41348 KB |
Output is correct |
2 |
Runtime error |
478 ms |
262144 KB |
Execution killed with signal 9 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
33 ms |
7120 KB |
Output is correct |
2 |
Correct |
47 ms |
7504 KB |
Output is correct |
3 |
Correct |
64 ms |
7536 KB |
Output is correct |
4 |
Correct |
1353 ms |
11984 KB |
Output is correct |
5 |
Correct |
1455 ms |
10832 KB |
Output is correct |
6 |
Correct |
53 ms |
6992 KB |
Output is correct |
7 |
Correct |
787 ms |
11248 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
4944 KB |
Output is correct |
2 |
Correct |
4 ms |
5200 KB |
Output is correct |
3 |
Correct |
4 ms |
5200 KB |
Output is correct |
4 |
Correct |
3 ms |
5200 KB |
Output is correct |
5 |
Correct |
25 ms |
12180 KB |
Output is correct |
6 |
Correct |
432 ms |
41444 KB |
Output is correct |
7 |
Correct |
418 ms |
41272 KB |
Output is correct |
8 |
Correct |
264 ms |
45456 KB |
Output is correct |
9 |
Execution timed out |
3097 ms |
223880 KB |
Time limit exceeded |
10 |
Halted |
0 ms |
0 KB |
- |