Submission #966837

#TimeUsernameProblemLanguageResultExecution timeMemory
966837josanneo22Game (APIO22_game)C++17
60 / 100
1574 ms120904 KiB
#include "game.h" #include <bits/stdc++.h> using namespace std; const int nax = 30005; const int kax = 1005; int reach[kax][nax], N, K; vector<int> G[nax]; bool ok; void dfs(int tp, int u) { reach[tp][u] = 1; if (u <= tp) ok = true; for (auto & v : G[u]) { if (!reach[tp][v]) { dfs(tp, v); } } } void init(int n, int k) { N = n; K = k; ok = false; for (int i = 1; i <= k - 1; i++) G[i].push_back(i + 1); for (int i = 1; i <= k - 1; i++) dfs(i, i + 1); } int add_teleporter(int u, int v) { u++; v++; G[u].push_back(v); for (int i = 1; i <= K; i++) { if ((u == i || reach[i][u]) && !reach[i][v]) { dfs(i, v); } } return ok; }
#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...