# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1274930 | muhammad-ahmad | Island Hopping (JOI24_island) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include "island.h"
using namespace std;
#define int long long
void solve(int N, int L) {
int cur = 1, F[N + 1] = {}, Ex[N + 1] = {};
bool vis[N];
map<pair<int, int>, int> C;
vis[1] = 1;
for (int i = 1; i <= N; i++){
int f = query(cur, 1);
int ex = query(cur, 2);
if (vis[f]){
if (!C[{cur, f}] && !C[{f, cur}]){
answer(cur, f);
C[{cur, f}] = 1;
}
if (!C[{cur, ex}] && !C[{ex, cur}]){
answer(cur, ex);
C[{cur, ex}] = 1;
}
vis[ex] = 1;
vis[f] = 1;
cur = x;
}
else {
if (!C[{cur, f}] && !C[{f, cur}]){
answer(cur, f);
C[{cur, f}] = 1;
}
vis[f] = 1;
cur = ex;
}
}
}