Submission #646180

#TimeUsernameProblemLanguageResultExecution timeMemory
646180jamezzzToy Train (IOI17_train)C++17
0 / 100
308 ms1712 KiB
#include "train.h"
#include <bits/stdc++.h>
using namespace std;

#define maxn 5005

typedef vector<int> vi;
bool vis[maxn];
vi AL[maxn],RAL[maxn];

bool dfs(int u,int rt){
	vis[u]=true;
	for(int v:AL[u]){
		if(v==rt)return true;
		if(vis[v])continue;
		if(dfs(v,rt))return true;
	}
	return false;
}

vi who_wins(vi a,vi r,vi u,vi v){
	int n=a.size(),m=u.size();
	vi ans(n,0);
	for(int i=0;i<m;++i){
		AL[u[i]].push_back(v[i]);
		RAL[v[i]].push_back(u[i]);
	}
	for(int i=0;i<n;++i){
		for(int j=0;j<n;++j)vis[j]=false;
		if(r[i]&&dfs(i,i)){
			queue<int> q;
			q.push(i);
			while(!q.empty()){
				int u=q.front();
				q.pop();
				if(ans[u])continue;
				for(int v:RAL[u]){
					ans[v]=true;
					q.push(v);
				}
			}
		}
	}
	return ans;
}
#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...