제출 #746877

#제출 시각아이디문제언어결과실행 시간메모리
746877tutisGame (APIO22_game)C++17
60 / 100
4010 ms43620 KiB
#pragma GCC optimize("O3") #pragma GCC target("avx2") #include <bits/stdc++.h> using namespace std; const int N = 300000; int K; vector<int>adj[2][N]; int mn[2][N]; void init(int n, int k) { K = k; for (int i = 0; i < n; i++) mn[0][i] = -k; for (int i = 0; i < k; i++) mn[0][i] = -i - 1; for (int i = 0; i < k; i++) mn[1][i] = i; for (int i = k; i < n; i++) mn[1][i] = -1; } void f(int t, int u, int v, int x) { function<void(int)>dfs = [&](int i) { mn[t][i] = x; for (int j : adj[t][i]) if (mn[t][j] < x) dfs(j); }; if (mn[t][u] < x) dfs(u); adj[t][v].push_back(u); } int g(int t, int v) { return mn[t][v]; } int add_teleporter(int u, int v) { int x = min(v, -g(0, v)); int y = g(1, u); if (y >= x) return 1; x = -x; f(0, u, v, x); f(1, v, u, y); return 0; }
#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...