Submission #1208607

#TimeUsernameProblemLanguageResultExecution timeMemory
1208607nvujicaGame (APIO22_game)C++20
0 / 100
1 ms2624 KiB
#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 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...