Submission #702732

#TimeUsernameProblemLanguageResultExecution timeMemory
702732jamezzzpopa (BOI18_popa)C++17
0 / 100
11 ms428 KiB
#include "popa.h"
#include <bits/stdc++.h>
using namespace std;

int solve(int n,int* lc,int* rc){
	int par[1005];
	for(int i=0;i<n;++i)par[i]=-1,lc[i]=-1,rc[i]=-1;
	int cur=0;
	for(int i=1;i<n;++i){
		while(true){
			if(query(0,i,0,cur)){
				if(rc[cur]==-1){
					par[i]=cur;
					rc[cur]=i;
					assert(0<=cur&&cur<n);
					cur=i;
					break;
				}
				else{
					par[rc[cur]]=i;
					lc[i]=rc[cur];
					assert(0<=i&&i<n);
					rc[cur]=i;
					assert(0<=cur&&cur<n);
					par[i]=cur;
					cur=i;
					break;
				}
			}
			else{
				if(par[cur]==-1){
					lc[i]=cur;
					assert(0<=i&&i<n);
					par[cur]=i;
					cur=i;
					break;
				}
				else cur=par[cur];
			}
		}
	}
	while(par[cur]!=-1)cur=par[cur];
	return cur;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...