#include "park.h"
#include <bits/stdc++.h>
using namespace std;
void Detect(int T, int n){
int on[1400]={};
if (T==1)
{
for (int i=0;i<n;i++)
for (int j=i+1;j<n;j++)
{
on[i]=on[j]=1;
if (Ask(i,j,on))
Answer(i,j);
on[i]=on[j]=0;
}
return;
}
vector<int> dep[9];
dep[0]={0};
int par[n];
bool vis[n]={};
for (int d=1;d<=9;d++)
{
for (int j=d-1;j>=0;j--)
for (int u:dep[j])
on[u]=1;
for (int i=1;i<n;i++)
if (!vis[i])
{
on[i]=1;
if (Ask(0,i,on))
dep[d].push_back(i),vis[i]=1;
on[i]=0;
}
for (int i=0;i<n;i++) on[i]=0;
for (int u:dep[d])
{
int s=-1,e=dep[d-1].size()-1;
while (s+1<e)
{
int mid=(s+e)/2;
on[0]=on[u]=1;
for (int j=0;j<=mid;j++)
{
int v=dep[d-1][j];
while (v)
on[v]=1,v=par[v];
}
if (Ask(0,u,on))
e=mid;
else
s=mid;
for (int i=0;i<n;i++) on[i]=0;
}
par[u]=dep[d-1][e];
Answer(min(par[u],u),max(par[u],u));
}
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |