This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "xylophone.h"
const int MAX_N = 5000;
int v[1+MAX_N];
int win2[1+MAX_N], win3[1+MAX_N];
void solve(int N) {
int semn = 1;
int vmin, pmin, vmax, pmax;
for(int i = 1; i < N; ++i)
win2[i] = query(i, i + 1);
for(int i = 2; i < N; ++i)
win3[i] = query(i - 1, i + 1);
v[1] = 0;
v[2] = win2[1];
for(int i = 3; i <= N; ++i) {
if(win2[i - 2] + win2[i - 1] != win3[i - 1])
semn = semn * (-1);
v[i] = v[i - 1] + semn * win2[i - 1];
}
vmin = 1000000000;
vmax =-1000000000;
pmin = pmax = 0;
for(int i = 1; i <= N; ++i) {
if(v[i] > vmax) {
vmax = v[i];
pmax = i;
}
if(v[i] < vmin) {
vmin = v[i];
pmin = i;
}
}
for(int i = 1; i <= N; ++i) {
v[i] = v[i] - vmin + 1;
if(pmin > pmax)
v[i] = N - v[i] + 1;
answer(i, v[i]);
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |