#include <bits/stdc++.h>
#include "island.h"
using namespace std;
int aa, bb, cc;
vector <bool> visited(305);
vector <pair <int, int>> edge;
void dfs(int u, int p){
visited[u] = true;
int a = query(u, 1);
if (a == p) a = query(u, 2);
if (visited[a] || a == aa || a == bb || a == cc) return;
// cout << u << " -> ";
edge.emplace_back(u, a);
dfs(a, u);
}
void solve(int n, int q) {
int a = query(1, 1), b = query(1, 2), c = query(1, 3);
aa = a, bb = b, cc = c;
visited[1] = true;
edge.emplace_back(1, a);
edge.emplace_back(1, b);
edge.emplace_back(1, c);
// cout << "dfs1: ";
dfs(a, 1);
// cout << "\n";
// cout << "dfs2: ";
dfs(b, 1);
// cout << "\n";
// cout << "dfs3: ";
dfs(c, 1);
// cout << "\n";
for (auto [u, v] : edge) {
// cout << u << " " << v << "\n";
answer(u, v);
}
}
# | 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... |