이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |