Submission #710204

#TimeUsernameProblemLanguageResultExecution timeMemory
710204AstraytGame (APIO22_game)C++17
0 / 100
4 ms7248 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define pb push_back #define maxn 300005 int N, K, mxcnt = 0, t = 1; vector<int> in, low, scc, stk, adj[maxn]; void init(int n, int k){ N = n, K = k; for(int i = 0; i < k - 1; ++i) adj[i].pb(i + 1); } void dfs(int u){ in[u] = low[u] = t++; stk.pb(u); for(int v:adj[u]){ if(!in[v]){ dfs(v); low[u] = min(low[u], low[v]); }else if(!scc[v]){ low[u] = min(in[v], low[u]); } } if(low[u] == in[u]){ int cur = stk.back(), cnt = 0; do{ scc[cur] = 1; cnt += (cur < K); cur = stk.back(), stk.pop_back(); }while(stk.size() && cur != u); mxcnt = max(mxcnt, cnt); } } int add_teleporter(int u, int v){ adj[u].pb(v); mxcnt = 0, t = 1; in.assign(N, 0), low.assign(N, 0), scc.assign(N, 0); dfs(0); if(mxcnt >= 2) return 1; 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...