제출 #973792

#제출 시각아이디문제언어결과실행 시간메모리
973792Pannda게임 (APIO22_game)C++17
60 / 100
4091 ms38416 KiB
#include "game.h" #include <bits/stdc++.h> using namespace std; int n, k; vector<vector<int>> adj; vector<vector<int>> rev; vector<int> highest; void init(int n, int k) { ::n = n; ::k = k; adj.resize(n); rev.resize(n); highest.resize(n, k); for (int u = 0; u + 1 < k; u++) { int v = u + 1; adj[u].push_back(v); rev[v].push_back(u); highest[u] = v; } } int add_teleporter(int u, int v) { if (u == v && u < k) return 1; if (u == v) return 0; adj[u].push_back(v); rev[v].push_back(u); int h = v < k ? v : highest[v]; bool wowie = false; auto dfs = [&](auto self, int u) -> void { if (highest[u] <= h) return; highest[u] = h; if (u < k && highest[u] <= u) wowie = true; for (int v : rev[u]) { self(self, v); } }; dfs(dfs, u); return wowie; }
#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...