Submission #1290435

#TimeUsernameProblemLanguageResultExecution timeMemory
1290435keremXylophone (JOI18_xylophone)C++20
0 / 100
1 ms332 KiB
#include "xylophone.h"
#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> ii;

void solve(int N) {
	int a[N+1],p[N+1];
	p[1]=a[0]=0;
	ii mn={0,1},mx={0,1};
	for(int i=1;i<N;i++){
		a[i]=query(i,i+1)*(a[i-1]<0?-1:1);
		if(i>1){
			int t=query(i-1,i+1);
			if(t!=a[i]+a[i-1])
				a[i]=-a[i];
		}
		p[i+1]=p[i]+a[i];
		mn=min(mn,make_pair(p[i+1],i+1));
		mx=max(mx,make_pair(p[i+1],i+1));
	}
	if(mn.second>mx.second){
		mn={0,1};
		for(int i=1;i<N;i++){
			p[i+1]=p[i]-a[i];
			mn=min(mn,make_pair(p[i+1],i+1));
		}
	}
	for(int i=1;i<=N;i++)
		answer(i,p[i]+1-mn.first);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...