Submission #1190303

#TimeUsernameProblemLanguageResultExecution timeMemory
1190303boclobanchatXylophone (JOI18_xylophone)C++20
100 / 100
26 ms456 KiB
#include"xylophone.h"
#include<bits/stdc++.h>
using namespace std;
const int MAXN=5555;
int da[MAXN],db[MAXN],B[MAXN];
void solve(int N)
{
	for(int i=1;i<N;i++) da[i]=query(i,i+1);
	for(int i=1;i<N-1;i++) db[i]=query(i,i+2);
	B[2]=da[1];
	for(int i=3;i<=N;i++)
	{
		B[i]=B[i-1]+da[i-1];
		if(max(abs(B[i]-B[i-1]),max(abs(B[i]-B[i-2]),abs(B[i-1]-B[i-2])))!=db[i-2]) B[i]=B[i-1]-da[i-1];
	}
	int mx=-1e9;
	for(int i=1;i<=N;i++) mx=max(mx,B[i]);
	for(int i=1;i<=N;i++) B[i]+=N-mx;
	for(int i=1;i<=N;i++) if(B[i]==1) break;
	else if(B[i]==N)
	{
		for(int j=1;j<=N;j++) B[j]=N-B[j]+1;
		break;
	}
	for(int i=1;i<=N;i++) answer(i,B[i]);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...