제출 #258099

#제출 시각아이디문제언어결과실행 시간메모리
258099dsjong장난감 기차 (IOI17_train)C++14
11 / 100
1459 ms1784 KiB
#include "train.h"
#include <bits/stdc++.h>
using namespace std;
bool vis[5005], cycle[5005];
vector<int>adj[5005];
bool una=true;
void dfs(int x){
	if(!una) vis[x]=true;
	una=false;
	for(int y:adj[x]){
		if(!vis[y]) dfs(y);
	}
}
vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v){
	int n=a.size(), m=u.size();
	for(int i=0;i<m;i++){
		adj[u[i]].push_back(v[i]);
	}
	for(int i=0;i<n;i++){
		if(r[i]==1){
			memset(vis, false, sizeof vis);
			una=true;
			dfs(i);
			if(vis[i]) cycle[i]=true;
		}
	}
	vector<int>ans;
	for(int i=0;i<n;i++){
		una=false;
		memset(vis, false, sizeof vis);
		dfs(i);
		bool good=false;
		for(int i=0;i<n;i++){
			if(r[i] && vis[i] && cycle[i]) good=true;
		}
		if(good) ans.push_back(1);
		else ans.push_back(0);
	}
	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...