Submission #1345449

#TimeUsernameProblemLanguageResultExecution timeMemory
1345449SpyrosAlivIsland Hopping (JOI24_island)C++20
65 / 100
3 ms456 KiB
#include "island.h"
#include <bits/stdc++.h>
using namespace std;

int n;
vector<int> par;
vector<set<int>> ch;

int get_par(int node) {
  for (int i = 1; i <= n; i++) {
    int nxt = query(node, i);
    if (ch[node].find(nxt) == ch[node].end()) return nxt;
  }
  assert(false);
  return -1;
}

void solve(int N, int L) {
  n = N;
  par.assign(n+1, -1);
  ch.resize(n+1);
  int root = 1;
  for (int i = n-1; i >= 2; i--) {
    int nxt = query(root, i);
    par[nxt] = get_par(nxt);
    ch[par[nxt]].insert(nxt);
    answer(par[nxt], nxt);
  }
  answer(root, query(root, 1));
}
#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...