Submission #702722

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

int par[1005];

int solve(int n,int* lc,int* rc){
	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(rc[cur]==-1){
				assert(cur==i-1);
				if(query(cur,i,i,i)){
					rc[cur]=i;
					par[i]=cur;
					cur=i;
					break;
				}
			}
			else{
				if(query(rc[cur],i-1,rc[cur],i)){
					par[rc[cur]]=i;
					lc[i]=rc[cur];
					rc[cur]=i;
					par[i]=cur;
					cur=i;
					break;
				}
			}
			//if i'm still here
			if(par[cur]==-1){
				lc[i]=cur;
				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...