#include "xylophone.h"
#include <bits/stdc++.h>
using namespace std;
#define show(x,y) cout << y << " " << #x << endl;
#define show2(x,y,i,j) cout << y << " " << #x << " " << j << " " << #i << endl;
#define show3(x,y,i,j,p,q) cout << y << " " << #x << " " << j << " " << #i << " " << q << " " << #p << endl;
#define show4(x,y) for(auto it:y) cout << it << " "; cout << #x << endl;
typedef pair<long long,int>pii;
typedef pair<pii,pii>pi2;
void solve(int n) {
//find index of value 1
int l=1;
int r=n;
int mid;
int one=1;
while(l<=r){
mid=(l+r)/2;
int hold=query(mid,n);
if(hold==n-1){
one=mid;
l=mid+1;;
}
else r=mid-1;
}
int ans[n+5];
memset(ans,-1,sizeof(ans));
ans[one]=1;
set<int>se;
for(int x=1;x<=n;x++){
se.insert(x);
}
//neighbour values
if(one>1){
ans[one-1]=1+query(one-1,one);
}
if(one<n){
ans[one+1]=1+query(one,one+1);
}
int st=1;
int ed=n;
if(one==1){
ed=n-1;
}
else st=2;
//recover other values
for(int x=one-2;x>=st;x--){
int a=query(x,x+1);
int b=query(x,x+2);
int diff=abs(ans[x+1]-ans[x+2]);
if(b==diff&&a<b){
//mid
if(ans[x+1]>ans[x+2]){
ans[x]=ans[x+1]-a;
}
else{
ans[x]=ans[x+1]+a;
}
}
else if(a==b){
if(ans[x+1]>ans[x+2]){
ans[x]=ans[x+1]-a;
}
else{
ans[x]=ans[x+1]+a;
}
}
else if(a>b){
if(ans[x+1]>ans[x+2]){
ans[x]=ans[x+1]-a;
}
else{
ans[x]=ans[x+1]+a;
}
}
else{
if(ans[x+2]>ans[x+1]){
ans[x]=ans[x+1]-a;
}
else{
ans[x]=ans[x+1]+a;
}
}
}
for(int x=one+2;x<=ed;x++){
int a=query(x-1,x);
int b=query(x-2,x);
int diff=abs(ans[x-1]-ans[x-2]);
if(b==diff&&a<b){
//mid
if(ans[x-1]>ans[x-2]){
ans[x]=ans[x-1]-a;
}
else{
ans[x]=ans[x-1]+a;
}
}
else if(a==b){
if(ans[x-1]>ans[x-2]){
ans[x]=ans[x-1]-a;
}
else{
ans[x]=ans[x-1]+a;
}
}
else if(a>b){
if(ans[x-1]>ans[x-2]){
ans[x]=ans[x-1]-a;
}
else{
ans[x]=ans[x-1]+a;
}
}
else{
if(ans[x-2]>ans[x-1]){
ans[x]=ans[x-1]-a;
}
else{
ans[x]=ans[x-1]+a;
}
}
}
for(int x=1;x<=n;x++){
if(ans[x]!=-1){
se.erase(se.find(ans[x]));
}
}
for(int x=1;x<=n;x++){
if(ans[x]==-1) ans[x]=*se.begin();
answer(x,ans[x]);
}
}
//code
# |
결과 |
실행 시간 |
메모리 |
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 |
1 ms |
432 KB |
Output is correct |
5 |
Correct |
1 ms |
436 KB |
Output is correct |
6 |
Correct |
1 ms |
432 KB |
Output is correct |
7 |
Correct |
1 ms |
436 KB |
Output is correct |
8 |
Correct |
1 ms |
688 KB |
Output is correct |
9 |
Correct |
1 ms |
436 KB |
Output is correct |
10 |
Correct |
2 ms |
440 KB |
Output is correct |
11 |
Correct |
1 ms |
432 KB |
Output is correct |
12 |
Correct |
1 ms |
436 KB |
Output is correct |
13 |
Correct |
1 ms |
436 KB |
Output is correct |
14 |
Correct |
1 ms |
432 KB |
Output is correct |
15 |
Correct |
1 ms |
444 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
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 |
1 ms |
432 KB |
Output is correct |
5 |
Correct |
1 ms |
436 KB |
Output is correct |
6 |
Correct |
1 ms |
432 KB |
Output is correct |
7 |
Correct |
1 ms |
436 KB |
Output is correct |
8 |
Correct |
1 ms |
688 KB |
Output is correct |
9 |
Correct |
1 ms |
436 KB |
Output is correct |
10 |
Correct |
2 ms |
440 KB |
Output is correct |
11 |
Correct |
1 ms |
432 KB |
Output is correct |
12 |
Correct |
1 ms |
436 KB |
Output is correct |
13 |
Correct |
1 ms |
436 KB |
Output is correct |
14 |
Correct |
1 ms |
432 KB |
Output is correct |
15 |
Correct |
1 ms |
444 KB |
Output is correct |
16 |
Correct |
2 ms |
432 KB |
Output is correct |
17 |
Correct |
4 ms |
688 KB |
Output is correct |
18 |
Correct |
8 ms |
480 KB |
Output is correct |
19 |
Correct |
10 ms |
480 KB |
Output is correct |
20 |
Correct |
8 ms |
484 KB |
Output is correct |
21 |
Correct |
8 ms |
688 KB |
Output is correct |
22 |
Correct |
9 ms |
432 KB |
Output is correct |
23 |
Correct |
7 ms |
436 KB |
Output is correct |
24 |
Correct |
9 ms |
688 KB |
Output is correct |
25 |
Correct |
9 ms |
436 KB |
Output is correct |
26 |
Correct |
11 ms |
684 KB |
Output is correct |
27 |
Correct |
11 ms |
484 KB |
Output is correct |
28 |
Correct |
10 ms |
484 KB |
Output is correct |
29 |
Correct |
10 ms |
488 KB |
Output is correct |
30 |
Correct |
9 ms |
836 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
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 |
1 ms |
432 KB |
Output is correct |
5 |
Correct |
1 ms |
436 KB |
Output is correct |
6 |
Correct |
1 ms |
432 KB |
Output is correct |
7 |
Correct |
1 ms |
436 KB |
Output is correct |
8 |
Correct |
1 ms |
688 KB |
Output is correct |
9 |
Correct |
1 ms |
436 KB |
Output is correct |
10 |
Correct |
2 ms |
440 KB |
Output is correct |
11 |
Correct |
1 ms |
432 KB |
Output is correct |
12 |
Correct |
1 ms |
436 KB |
Output is correct |
13 |
Correct |
1 ms |
436 KB |
Output is correct |
14 |
Correct |
1 ms |
432 KB |
Output is correct |
15 |
Correct |
1 ms |
444 KB |
Output is correct |
16 |
Correct |
2 ms |
432 KB |
Output is correct |
17 |
Correct |
4 ms |
688 KB |
Output is correct |
18 |
Correct |
8 ms |
480 KB |
Output is correct |
19 |
Correct |
10 ms |
480 KB |
Output is correct |
20 |
Correct |
8 ms |
484 KB |
Output is correct |
21 |
Correct |
8 ms |
688 KB |
Output is correct |
22 |
Correct |
9 ms |
432 KB |
Output is correct |
23 |
Correct |
7 ms |
436 KB |
Output is correct |
24 |
Correct |
9 ms |
688 KB |
Output is correct |
25 |
Correct |
9 ms |
436 KB |
Output is correct |
26 |
Correct |
11 ms |
684 KB |
Output is correct |
27 |
Correct |
11 ms |
484 KB |
Output is correct |
28 |
Correct |
10 ms |
484 KB |
Output is correct |
29 |
Correct |
10 ms |
488 KB |
Output is correct |
30 |
Correct |
9 ms |
836 KB |
Output is correct |
31 |
Correct |
28 ms |
520 KB |
Output is correct |
32 |
Correct |
29 ms |
568 KB |
Output is correct |
33 |
Correct |
40 ms |
632 KB |
Output is correct |
34 |
Correct |
58 ms |
668 KB |
Output is correct |
35 |
Incorrect |
52 ms |
432 KB |
Wrong Answer [2] |
36 |
Halted |
0 ms |
0 KB |
- |