/*
============================
============================
3 2 2
1 2
1 0
ans: 1
==
1 1 1
0 0
ans: 0
==
12 8 4
11 1
10 9
9 8
2 9
8 7
4 5
7 3
5 6
ans: 6
==
12 8 4
11 1
10 9
9 8
2 9
8 7
4 5
5 6
7 3
ans: 7
*/
#include "game.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vi vector<int>
#define pb push_back
const int N=5e5+10;
vi adj[N][2];
bool vis[N][2];
int n,k;
void init(int cn, int ck){
n=cn,k=ck;
for(int i=0;i<k;++i){
vis[i][0]=vis[i][1]=1;
}
for(int i=0;i<n;++i)adj[i][0].clear(), adj[i][1].clear();
}
void dfs(int x,int j){
vis[x][j]=1;
for(int i:adj[x][j])if(!vis[i][j]) dfs(i,j);
}
int add_teleporter(int u, int v){
if(u<v && u<k && v<k)return 0;
adj[u][0].pb(v);
adj[v][1].pb(u);
if(vis[u][0]) dfs(v,0);
if(vis[v][1]) dfs(u,1);
return (vis[u][0] && vis[v][1]);
}
# | 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... |