This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "popa.h"
#include<bits/stdc++.h>
using namespace std;
int tole[1005],tori[1005];
int calc(int le, int ri)
{
if(le>ri)
return -1;
if(le==ri)
{
tole[le]=tori[le]=-1;
return le;
}
for(int root=le;root<=ri;root++)
{
if(query(root,root,le,ri))
{
tole[root] = calc(le,root-1);
tori[root] = calc(root+1,ri);
return root;
}
}
}
int solve(int N, int* Left, int* Right)
{
for(int i=0;i<N;i++)
tole[i]=tori[i]=-1;
int root = calc(0,N-1);
for(int i=0;i<N;i++)
{
Left[i]=tole[i];
Right[i]=tori[i];
}
return root;
}
void test(int N) {
int* Left = new int[N];
int* Right = new int[N];
int root = solve(N, Left, Right);
cout << "Root: " << root << endl;
for (int i = 0; i < N; i++) {
cout << Left[i] << " " << Right[i] << endl;
}
}
Compilation message (stderr)
popa.cpp: In function 'int calc(int, int)':
popa.cpp:23:5: warning: control reaches end of non-void function [-Wreturn-type]
23 | }
| ^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |