#include "island.h"
#include "iostream"
#include "bits/stdc++.h"
using namespace std;
int const MAXN=310;
int vis[MAXN]={};
set<int>s;
void sol(int N)
{
vector<int>z;
vector<pair<int,int>>ed;
int g=query(N,1);
if (vis[g]!=2)
ed.push_back({N,g});
int y;
s.erase(N);
if (!vis[g])
{
y=query(g,1);
vis[N]=1;
vis[g]=1;
s.erase(g);
if (y!=N)
{
z={};
ed.push_back({y,g});
z.push_back(y);
for (int j=0;j<z.size();j++)
{
int i=z[j];
s.erase(i);
vis[i]=1;
int f=query(i,1);
if (vis[f])
{
f=query(i,2);
if (vis[f])
break;
}
ed.push_back({i,f});
z.push_back(f);
}
}
}
y=query(N,2);
if(!vis[y])
{
z={};
ed.push_back({y,N});
vis[y]=1;
z.push_back(y);
for (int j=0;j<z.size();j++)
{
int i=z[j];
s.erase(i);
vis[i]=1;
int f=query(i,1);
if (vis[f])
{
f=query(i,2);
if (vis[f])
break;
}
ed.push_back({i,f});
z.push_back(f);
}
}
for (auto [i,j]:ed)
answer(i,j);
}
void solve(int N, int L)
{
for (int i=1;i<=N;i++)
s.insert(i);
vis[1]=2;
s.erase(1);
for (int i=1;i<=3;i++)
{
int z=query(1,i);
vis[z]=1;
answer(1,z);
}
while (s.size())
sol(*rbegin(s));
}
| # | 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... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |