Submission #1192075

#TimeUsernameProblemLanguageResultExecution timeMemory
1192075nagorn_phIsland Hopping (JOI24_island)C++20
100 / 100
3 ms424 KiB
#include <bits/stdc++.h>
#include "island.h"

using namespace std;

int par[305];

int dsu(int a){
    return par[a] = (a == par[a] ? a : dsu(par[a]));
}

void solve(int n, int q) {
    iota(par, par + 305, 0);
    vector <pair <int, int>> edge;
    for (int i = 1; i < n; i++) {
        int u = query(1, i);
        if (dsu(u) == dsu(1)) continue;
        int curr = 1;
        while (1) {
            int v = query(u, curr);
            edge.emplace_back(u, v);
            par[dsu(u)] = dsu(v);
            curr++;
            if (dsu(1) == dsu(u)) break;
        }
    }
    for (auto [u, v] : edge) 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...