Submission #1257557

#TimeUsernameProblemLanguageResultExecution timeMemory
1257557cevatXylophone (JOI18_xylophone)C++20
100 / 100
26 ms464 KiB
#include "xylophone.h"
//#include <bits/stdc++.h>
using namespace std;

void solve(int N) {
	int arr[N+1];
	arr[1]=0;
	int ik[N+1],u[N+1];
	for(int i=1;i<N;i++){
	  ik[i]=query(i,i+1);
	}
	for(int i=1;i<N-1;i++){
	  u[i]=query(i,i+2);
	}
	arr[2]=ik[1];
	int y=1;
	for(int i=3;i<=N;i++){
	  if(ik[i-2]+ik[i-1]!=u[i-2]){
	    y = y * (-1);
	  }
	  arr[i]=arr[i-1]+ik[i-1]*y;
	}
	int mx = 0, mn = 0;
	int mxp = 1, mnp = 1;
	for(int i=2;i<=N;i++) {
		if(arr[i]>mx) {
			mx=arr[i];
			mxp=i;
		}
		if(arr[i]<mn) {
			mn=arr[i];
			mnp=i;
		}
	}
	
	if(mnp<mxp) {
		for(int i=1;i<=N;i++) {
			answer(i,arr[i]-mn+1);
		}
	} else {
		for(int i=1;i<=N;i++) {
			answer(i,mx-arr[i]+1);
		}
	}
	
	return;
}

/*int main(){
}*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...