Submission #151871

#TimeUsernameProblemLanguageResultExecution timeMemory
151871rondojimpopa (BOI18_popa)C++17
100 / 100
103 ms376 KiB
#include <bits/stdc++.h>
#include "popa.h"
 
using namespace std;
 
const int N = 1005;
 
int par[N];

int solve(int n, int* L, int* R) {
	memset(par, -1, sizeof par);
	L[0] = R[0] = -1;
	for (int i = 1; i < n; ++i) {
		int cur = i - 1;
		L[i] = R[i] = -1;
		while (1) {
			if(query(cur, i, i, i)){
				if (par[cur] == -1){
					par[cur] = i, L[i] = cur; break;
				}
				else cur = par[cur];
			}
			else {
				if (R[cur] == -1) R[cur] = i, par[i] = cur;
				else par[R[cur]] = i, par[i] = cur, L[i] = R[cur], R[cur] = i;
				break;
			}
		}
	}
	int root = 0;
	for (int i = 0; i < n; ++i) if (par[i] == -1) root = i;
	return root;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...