Submission #1364644

#TimeUsernameProblemLanguageResultExecution timeMemory
1364644clemmy14Island Hopping (JOI24_island)C++20
2 / 100
3 ms440 KiB
#include<bits/stdc++.h>
#include "island.h"
using namespace std;

int n;
vector<bool> vis;
vector<vector<int>> adj;
// vector<vector<int>> dis;

void dfs(int node, int prev) {
    if(vis[node]) return;
    vis[node]=true;

    for(int q=1; q<n; q++) {
        int child=query(node, q);
        if(child == prev) continue;
        if(vis[child]) break;
        if(q == 2) {
            if(prev != -1 && child == query(prev, q)) {
                for(int i=1; i<n; i++) {
                    if(query(child, i) == node) {
                        break;
                    } else if(query(child, i) == prev) {
                        return;
                    }
                }
            }
        }
        adj[node].push_back(child);
        dfs(child, node);
    }
}

void solve(int N, int L) {
    n=N;
    // dis=vector<vector<int>>(N+1, vector<int>(N+1, 0));
    adj=vector<vector<int>>(N+1);
    vis=vector<bool>(N+1, false);
    dfs(1, -1);
    for(int i=1; i<=N; i++) {
        for(int j=0; j<adj[i].size(); j++) {
            // cerr << i << ' ' << adj[i][j] << endl;
            answer(i, adj[i][j]);
        }
    }
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...