#include <bits/stdc++.h>
#include "xylophone.h"
using namespace std;
// static int a[5000];
int a[5004];
void solve(int n) {
// int value = query(1, N);
// for(int i = 1; i <= N; i++) {
// answer(i, i);
// }
int dis = query(1,2);
map<pair<int,int>,int> mp;
for(int i = 3; i <= n; i++){
mp[{i-1, i}] = query(i-1, i);
mp[{i-2, i}] = query(i-2, i);
}
for(int i = 1; i <= n; i++){
a[1] = i;
bool c = 1;
if(i + dis <= n){
c = 1;
a[2] = i + dis;
map<int,int> used;
used[a[1]] = 1;
used[a[2]] = 1;
for(int j = 3; j <= n; j++){
int x = a[j-1] - mp[{j-1,j}];
if(x >= 1 && used[x] == 0){
if((max({x,a[j-1],a[j-2]})-min({x,a[j-1],a[j-2]})==mp[{j-2, j}]) && (max(x,a[j-1]) - min(x,a[j-1])==mp[{j-1,j}])){
a[j] = x;
used[x] = 1;
continue;
}
}
x = a[j-1] + mp[{j-1,j}];
if(x <= n && used[x] == 0){
if((max({x,a[j-1],a[j-2]})-min({x,a[j-1],a[j-2]})==mp[{j-2, j}]) && (max(x,a[j-1]) - min(x,a[j-1])==mp[{j-1,j}])){
a[j] = x;
used[x] = 1;
continue;
}
}
c = 0;
}
if(c){
bool cc =1;
for(int j=1;j<=n;j++){
if(used[j]==0) cc = 0;
}
if(cc==0) continue;
for(int j = 1;j<=n;j++){
// cout<<a[j]<<" ";
answer(j,a[j]);
}
// cout<<endl;
return;
}
}
if(i - dis >= 1){
c = 1;
a[2] = i - dis;
map<int,int> used;
used[a[1]] = 1;
used[a[2]] = 1;
for(int j = 3;j<=n;j++){
int x = a[j-1] - mp[{j-1, j}];
if(x >= 1 && used[x] == 0){
if((max({x,a[j-1],a[j-2]})-min({x,a[j-1],a[j-2]})==mp[{j-2, j}]) && (max(x,a[j-1]) - min(x,a[j-1])==mp[{j-1,j}])){
a[j] = x;
used[x] = 1;
continue;
}
}
x = a[j-1] + mp[{j-1,j}];
if(x <= n && used[x] == 0){
if((max({x,a[j-1],a[j-2]})-min({x,a[j-1],a[j-2]})==mp[{j-2, j}]) && (max(x,a[j-1]) - min(x,a[j-1])==mp[{j-1,j}])){
a[j] = x;
used[x] = 1;
continue;
}
}
c = 0;
}
if(c){
bool cc =1;
for(int j=1;j<=n;j++){
if(used[j]==0) cc = 0;
}
if(cc==0) continue;
for(int j = 1;j<=n;j++){
// cout<<a[j]<<" ";
answer(j,a[j]);
}
// cout<<endl;
return;
}
}
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
1 ms |
344 KB |
Output is correct |
4 |
Correct |
2 ms |
344 KB |
Output is correct |
5 |
Incorrect |
2 ms |
344 KB |
Wrong Answer [7] |
6 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
1 ms |
344 KB |
Output is correct |
4 |
Correct |
2 ms |
344 KB |
Output is correct |
5 |
Incorrect |
2 ms |
344 KB |
Wrong Answer [7] |
6 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
1 ms |
344 KB |
Output is correct |
4 |
Correct |
2 ms |
344 KB |
Output is correct |
5 |
Incorrect |
2 ms |
344 KB |
Wrong Answer [7] |
6 |
Halted |
0 ms |
0 KB |
- |