Submission #1191818

#TimeUsernameProblemLanguageResultExecution timeMemory
1191818nagorn_phIsland Hopping (JOI24_island)C++20
22 / 100
2 ms420 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...