#include "game.h"
#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e4 + 10, maxk = 1e3 + 10;
bool naso = 0;
int k;
int bio[maxn][maxk];
int bio2[maxn][maxk];
vector <int> adj[maxn];
vector <int> adj2[maxn];
void dfs(int x, int poc){
bio[poc][x] = 1;
for(auto x2: adj[x]){
if(bio[poc][x2]) continue;
dfs(x2, poc);
}
}
void dfs2(int x, int kraj){
bio2[kraj][x] = 1;
for(auto x2: adj2[x]){
if(bio2[kraj][x2]) continue;
dfs2(x2, kraj);
}
}
void init(int n, int K){
k = K;
for(int i = 0; i < k; i++){
for(int j = i; j < k; j++){
bio[i][j] = 1;
bio2[j][i] = 1;
}
if(i + 1 != k){
adj[i].push_back(i + 1);
adj2[i + 1].push_back(i);
}
}
}
int add_teleporter(int u, int v) {
for(int i = 0; i < k; i++){
if(bio[i][u] && bio2[i][v]) return 1;
if(!bio[i][u]) continue;
if(!bio[i][v]) dfs(v, i);
}
for(int i = 0; i < k; i++){
if(!bio2[i][v]) continue;
if(!bio[i][u]) dfs2(u, i);
}
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... |