이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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... |