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 <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include "popa.h"
using namespace std;
using namespace __gnu_pbds;
 
#define fi first
#define se second
#define mp make_pair
#define pb push_back
 
typedef long long ll;
typedef pair<int,int> ii;
typedef vector<int> vi;
typedef long double ld; 
typedef tree<ii, null_type, less<ii>, rb_tree_tag, tree_order_statistics_node_update> pbds;
/*
int secret[1111];
int queries;
int query(int a, int b, int c, int d)
{
	int gd1=secret[a]; int gd2=secret[c];
	for(int i=a;i<=b;i++) gd1=__gcd(gd1,secret[i]);
	for(int i=c;i<=d;i++) gd2=__gcd(gd2,secret[i]);
	queries++;
	return (gd1==gd2);
}
*/
int ansL[1111];
int ansR[1111];
int solve(int n, int *L, int *R)
{
	for(int i=0;i<n;i++) ansL[i]=ansR[i]=-1;
	int rt=0;
	for(int i=1;i<n;i++)
	{
		int cur = rt;
		vi vec;
		while(cur!=-1)
		{
			vec.pb(cur); cur=ansR[cur];
		}
		int child=int(vec.size());
		for(int j=int(vec.size())-1;j>=0;j--)
		{
			if(query(i,i,vec[j],i))
			{
				child=j;
			}
			else break;
		}
		vec.pb(-1);
		ansL[i] = vec[child];
		if(child>0)
		{
			ansR[vec[child-1]]=i;
		}
		else
		{
			rt=i;
		}
	}
	for(int i=0;i<n;i++)
	{
		L[i] = ansL[i]; R[i] = ansR[i];
	}
	return rt;
}
/*
int n; 
void read_input()
{
	cin>>n;
	//n=1000;
	for(int i=0;i<n;i++)
	{
		//secret[i]=1;
		cin>>secret[i];
	}
}
int secretL[1111];
int secretR[1111];
void process_case()
{
	read_input(); queries=0;
	int rt = solve(n, secretL, secretR);
	cerr<<"ROOT : "<<secret[rt]<<'\n';
	for(int i=0;i<n;i++)
	{
		cerr<<secret[i]<<' '<<(secretL[i]==-1?-1:secret[secretL[i]])<<' '<<(secretR[i]==-1?-1:secret[secretR[i]])<<'\n';
	}
	cerr<<"QUERIES USED : "<<ld(queries)/ld(n)<<'\n';
}
int main()
{
	ios_base::sync_with_stdio(0); cin.tie(0);
	process_case();	
}	
*/
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |