제출 #1328399

#제출 시각아이디문제언어결과실행 시간메모리
1328399kantaponzIsland Hopping (JOI24_island)C++20
100 / 100
3 ms420 KiB
#include "island.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> ord;
int vis[305];
int p[305];
int root = 0;

void solve(int N, int L) {
    memset(p, -1, sizeof p);
    root = query(1, N - 1);
    vis[root] = 1;
    ord.push_back(root);
    for (int i = 1; i <= N - 1; i++) {
        ord.push_back(query(root, i));
    }
    // find parent of order[i];
    for (int i = 1; i <= N - 1; i++) {
        if (p[ord[i]] != -1) continue;
        int k = 1;
        while (true) {
            int x = query(ord[i], k);
            if (vis[x]) {
                p[ord[i]] = x;
                vis[ord[i]] = 1;
                break;
            } else {
                p[x] = ord[i];
                vis[x] = 1;
            }
            k++;
        }
    }
    for (int i = 1; i <= N - 1; i++) {
        answer(p[ord[i]], ord[i]);
    }
    return;
}
#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...