Submission #996847

#TimeUsernameProblemLanguageResultExecution timeMemory
996847MilosMilutinovicIsland Hopping (JOI24_island)C++17
100 / 100
7 ms680 KiB
#include "island.h"
#include <bits/stdc++.h>

using namespace std;

void solve(int n, int l) {
  vector<int> order(1, 1);
  for (int i = 1; i < n; i++) {
    order.push_back(query(1, i));
  }
  vector<int> pos(n + 1);
  for (int i = 0; i < (int) order.size(); i++) {
    pos[order[i]] = i;
  }
  vector<int> pr(n + 1, -1);
  for (int b = 1; b < (int) order.size(); b++) {
    int i = order[b];
    if (pr[i] != -1) {
      continue;
    }
    int ptr = 1;
    while (true) {
      int j = query(i, ptr);
      ptr += 1;
      if (pos[j] > pos[i]) {
        pr[j] = i;
      } else {
        pr[i] = j;
        break;
      }
    }
  }
  for (int i = 2; i <= n; i++) {
    answer(i, pr[i]);
  }
}
#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...