#include "island.h"
#include "iostream"
#include "bits/stdc++.h"
using namespace std;
int const MAXN=310;
int vis[MAXN]={};
int val[MAXN][MAXN]={};
bool nei[MAXN][MAXN]={};
int deg[MAXN]={};
int par[MAXN]={};
int ask(int i,int j)
{
    if (val[i][j]==0)
        val[i][j]=query(i,j);
    return val[i][j];
}
int root(int n)
{
    return (par[n]==n?n:par[n]=root(par[n]));
}
void merge(int u,int v)
{
    u=root(u);
    v=root(v);
    par[v]=u;
}
void solve(int N, int L) 
{
    for (int i=1;i<=N;i++)
        par[i]=i;
    int cnt=0;
    for (int i=1;i<=N;i++)
    {
        int j=1;
        while (j<N&&cnt<N-1)
        {
            int z=ask(i,j);
            if (z<i)
            {
                break;
            }
            if (root(i)==root(z))
            { 
                j++;
                break;
            }
            if (ask(z,deg[z]+1)==i)
            {
                cnt++;
                nei[i][z]=1;
                merge(i,z);
                deg[i]++;
                deg[z]++;
            }
            else
                break;
            j++;
        }
    }
    set<pair<int,int>>ed;
    for (int i=1;i<=N;i++)
    {
        for (int j=i+1;j<=N;j++)
            if (nei[i][j])
                ed.insert({i,j});
    }
    for (auto [i,j]:ed)
    {
        // cout<<i<<' '<<j<<endl;
        answer(i,j);
    }
}
| # | 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... |