Submission #1252457

#TimeUsernameProblemLanguageResultExecution timeMemory
1252457keremXylophone (JOI18_xylophone)C++20
0 / 100
0 ms408 KiB
#include "xylophone.h"
#include <bits/stdc++.h>
using namespace std;
void solve(int N) {
	int a[N];
	for(int i=0;i<N-1;i++)
		a[i]=query(i,i+1);
	for(int i=0;i<N-2;i++){
		int t=query(i,i+2);
		if(t==a[i]+a[i+1])
			a[i+1]*=a[i]>0?1:-1;
		else
			a[i+1]*=a[i]>0?-1:1;
	}
	int k1=0,k2=0,cev1[N],cev2[N];
	cev1[0]=cev2[0]=0;
	for(int i=1;i<N;i++){
		cev1[i]=cev1[i-1]+a[i-1];
		cev2[i]=cev2[i-1]-a[i-1];
		k1=min(k1,cev1[i]);
		k2=min(k2,cev1[i]);
	}
	int bas,son;
	for(int i=0;i<N;i++){
		if(cev1[i]-k1==1) bas=i;
		if(cev1[i]-k1==N) son=i;
	}
	if(bas<son){
		for(int i=0;i<N;i++)
			answer(i+1,cev1[i]-k1);
	}
	else{
		for(int i=0;i<N;i++)
			answer(i+1,cev2[i]-k2);
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...