#include "xylophone.h"
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5e3 + 10;
int n, a[MAXN], x[MAXN];
bool use[MAXN];
bool findArr() {
int mn = 0;
for (int i = 2; i <= n; i++) {
a[i] = a[i - 1] + x[i] * (use[i]? -1: 1);
mn = min(mn, a[i]);
}
int w1 = -1, w2 = -1;
for (int i = 1; i <= n; i++) {
a[i] -= (mn - 1);
if (a[i] == 1)
w1 = i;
else if (a[i] == n)
w2 = i;
}
return ((w1 >= 1 && w2 >= 1) && w1 < w2);
}
void solve(int N) {
n = N;
if (n == 1) {
answer(1, 1);
return;
}
if (n == 2) {
answer(1, 1);
answer(1, 2);
return;
}
for (int i = 2; i <= n; i++)
x[i] = query(i - 1, i);
for (int i = 3; i <= n; i++) {
int num = query(i - 2, i);
if (!((num == (x[i] + x[i - 1])) ^ (use[i - 1])))
use[i] = true;
}
/*if (findArr()) {
for (int i = 1; i <= n; i++)
answer(i, a[i]);
return;
}
for (int i = 1; i <= n; i++) {
a[i] = 0;
use[i] = !use[i];
}
findArr();*/
for (int i = 1; i <= n; i++)
answer(i, a[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... |