제출 #969694

#제출 시각아이디문제언어결과실행 시간메모리
969694anton게임 (APIO22_game)C++17
60 / 100
504 ms5720 KiB
#include "game.h" #include<bits/stdc++.h> using namespace std; #define pii pair<int, int> const int MAX_N = 3 * 1e4; vector<int> adj[MAX_N]; vector<int> rev_adj[MAX_N]; int min_acc[MAX_N]; int N, K; bool broken = false; void rev_dfs(int u, int acc){ //cout<<u<<" "<<acc<<endl; min_acc[u] = acc; if(u<K && acc<=u){ broken = true; } for(auto e: rev_adj[u]){ if(min_acc[e]>acc){ rev_dfs(e, acc); } } } void init(int n, int k) { N= n, K = k; for(int i = 0; i<N; i++){ min_acc[i] = K; } for(int i = 0; i<k-1; i++){ adj[i].push_back(i+1); rev_adj[i+1].push_back(i); } } int add_teleporter(int u, int v) { adj[u].push_back(v); rev_adj[v].push_back(u); if(min_acc[v]<min_acc[u]){ rev_dfs(u, min(v, min_acc[v])); } else if(v<min_acc[u]){ rev_dfs(u, v); } if(broken){ return 1; } //cout<<endl; 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...