# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1192514 | prideliqueee | Island Hopping (JOI24_island) | C++20 | 0 ms | 0 KiB |
#include<bits/stdc++.h>
#include "island.h"
using namespace std;
void solve(int N, int L) {
int vis[310];
memset(vis,0,sizeof vis);
int v1,v2;
v1=query(1,N-1);
v2=query(v1,N-1);
int now=v1;
int cnt=0;
while(now!=1)
{
int v=query(now,1);
cnt++;
if(v!=v1)
{
answer(v,now);
vis[v]=1;
vis[now]=1;
v1=now;
now=v;
continue;
}
v=query(now,2);
answer(v,now);
vis[v]=1;
vis[now]=1;
v1=now;
now=v;
}
now=v2;
while(now!=1)
{
int v=query(now,1);
cnt++;
if(v!=v2)
{
answer(v,now);
vis[v]=1;
vis[now]=1;
v2=now;
now=v;
continue;
}
v=query(now,2);
answer(v,now);
vis[v]=1;
vis[now]=1;
v2=now;
now=v;
}
if(cnt<N-1)
{
v1=query(1,1);
if(vis[v1])
{
v1=query(1,2);
if(vis[v1])
{
v1=query(1,3);
}
}
now=v1;
cnt++;
ans(1,v1);
for(int i=cnt+1;i<=N-1;i++)
{
int v=query(now,1);
if(v!=v1&&v!=1)
{
answer(v,now);
vis[v]=1;
vis[now]=1;
v1=now;
now=v;
continue;
}
v=query(now,2);
answer(v,now);
vis[v]=1;
vis[now]=1;
v1=now;
now=v;
}
}
}