제출 #1327909

#제출 시각아이디문제언어결과실행 시간메모리
1327909ninstroyerXylophone (JOI18_xylophone)C++20
0 / 100
0 ms336 KiB
#include<bits/stdc++.h>
using namespace std;
#include "xylophone.h"

const int nx = 5e3+5;

int val[nx], mn=1;

void solve(int n) 
{
	val[1] = 1;
	int mx = query(1,2);
	val[2] = 1+mx;
	for(int i = 3; i <= n; i++)
	{
		int num1 = val[i-2];
		int num2 = val[i-1];
		int diff = query(i-1,i);
		if(num1 > num2)
		{
			int q = query(i-2,i);
			if(q==num1-num2) val[i] = num2+diff;
			else val[i] = num2-diff;
		}
		else
		{
			int q = query(i-2,i);
			if(q==num2-num1) val[i] = num2-diff;
			else val[i] = num2+diff;
		}
		mn = min(mn,val[i]);
	}
	int add = 1-mn;
	for(int i = 1; i <= n; i++) val[i] += add;
	for(int i = 1; i <= n; i++)
	{
		if(val[i]==1)
		{
			for(int j = 1; j <= n; j++) answer(j,val[i]);
		}
		if(val[i]==n)
		{
			for(int j = 1; j <= n; j++) answer(j,n-val[i]+1);
		}
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...