Submission #283807

#TimeUsernameProblemLanguageResultExecution timeMemory
283807mohammadToy Train (IOI17_train)C++14
5 / 100
187 ms262148 KiB
#include "train.h"
#include<bits/stdc++.h>
using namespace std;
 
#define endl "\n"
// #define int long long

typedef long long ll ;
const ll ooo = 1e14 ;
const ll oo = 2e9 ;
const double PI = acos(-1) ;
const ll M = 1e9 + 7  ;
const int N = 10000010  ;

vector<int> g[5010] , w , R;

int dfs(int i){
	if(w[i] != -1)  return w[i];
	for(auto x : g[i])
		w[i] = dfs(x);
	if(w[i] == -1) w[i] = R[i];
	return w[i] ;
}


vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v) {
	int n = a.size() , m = u.size();
	w = vector<int>(n , -1);
	R = r;
	for(int i = 0 ; i < m ; ++i){
		int x = u[i] , y = v[i];
		if(x == y && a[x] == 1 && r[x] == 1) w[x] = 1;
		if(x == y && a[x] == 0 && r[x] == 0) w[x] = 0;
		else if(x != y) g[x].push_back(y);
	}
	for(int i = 0 ; i < n ; ++i){
		if(w[i] != -1) continue ;
		dfs(i);
	}
	return w;
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...