제출 #1282575

#제출 시각아이디문제언어결과실행 시간메모리
1282575Jawad_Akbar_JJXylophone (JOI18_xylophone)C++20
0 / 100
1 ms336 KiB
#include <iostream>
#include "xylophone.h"

using namespace std;
int a[1<<16];

void solve(int n){
	a[1] = n + n;

	int Min = 1, cur = 1;
	while (cur < n){
		int d = query(cur, cur + 1), dd;
		if (Min == 1)
			a[cur + 1] = a[cur] + d;
		else
			a[cur + 1] = a[cur] - d;
		if (cur == n - 1)
			break;

		dd = query(cur, cur + 2);
		Min = Min ^ (dd == d);
		cur++;
	}

	int Mn = a[1] - 1, id1, idn;
	for (int i=1;i<=n;i++)
		Mn = min(Mn, a[i] - 1);
	
	for (int i=1;i<=n;i++){
		a[i] -= Mn;
		if (a[i] == 1)
			id1 = i;
		if (a[i] == n)
			idn = i;
	}

	for (int i=1;i<=n;i++)
		answer(i, a[i] + (n + 1 - 2 * a[i]) * (id1 > idn));


}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...