#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... |