#include<bits/stdc++.h>
#include "xylophone.h"
#define ll long long
#define all(v) begin(v), end(v)
#define pi pair<int, int>
#define vi vector<int>
using namespace std;
int a[5005], n;
int p1[5005], p2[5005];
bool thu(int d){
a[2] = d;
for(int i = 3; i <= n; i++){
if(a[i-1] > 0){
if(p1[i] == p2[i] || p2[i] == abs(a[i-1])) a[i] = -p1[i];
else a[i] = p1[i];
}
else{
if(p1[i] == p2[i] || p2[i] == abs(a[i-1])) a[i] = p1[i];
else a[i] = -p1[i];
}
}
for(int i = 2; i <= n; i++) a[i] += a[i-1];
int dd = *min_element(a+1, a+n+1);
for(int i = 1; i <= n; i++){
a[i] += 1-dd;
}
return *max_element(a+1, a+n+1) <= n;
}
void solve(int m){
n = m;
int d = query(1, 2);
for(int i = 3; i <= n; i++){
p1[i] = query(i-1, i), p2[i] = query(i-2, i);
}
for(int tp = -d; tp <= d; tp+=2*d){
if(thu(tp)){
for(int i = 1; i <= n; i++) answer(i, a[i]);
return ;
}
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
344 KB |
Wrong Answer [7] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
344 KB |
Wrong Answer [7] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
344 KB |
Wrong Answer [7] |
2 |
Halted |
0 ms |
0 KB |
- |