#include "xylophone.h"
#include<bits/stdc++.h>
using namespace std;
static int A[5010];
int a[5010],b[5010],arr[5010],mn=INT_MAX,mx=INT_MIN,mnidx,mxidx;
bool dif[5010],inc[5010];
//a[i]=query(i,i+1) b[i]=query(i,i+2)
//dif[i]=relation (i,i+1), relation (i+1,i+2) different?
//inc[i]=relation (i,i+1) increase?
void solve(int N) {
	for(int i=1;i<=N-1;i++) a[i]=query(i,i+1);
	for(int i=1;i<=N-2;i++) b[i]=query(i,i+2);
	for(int i=1;i<=N-2;i++) if(a[i]+a[i+1]!=b[i]) dif[i]=true;
	for(int i=2;i<=N-1;i++) inc[i]=inc[i-1]^dif[i-1];
	arr[1]=1;
	for(int i=2;i<=N;i++){
		arr[i]=arr[i-1]+(inc[i]?a[i-1]:-a[i-1]);
		if(mn>arr[i]){
			mn=arr[i];
			mnidx=i;
		}
		if(mx<arr[i]){
			mx=arr[i];
			mxidx=i;
		}
	}
	for(int i=1;i<=N;i++) arr[i]+=(1-mn);
	if(mnidx>mxidx) for(int i=1;i<=N;i++) arr[i]=(N+1)-arr[i];
	for(int i=1;i<=N;i++) answer(i,arr[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... |