제출 #646185

#제출 시각아이디문제언어결과실행 시간메모리
646185jamezzz장난감 기차 (IOI17_train)C++17
11 / 100
313 ms1748 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();
				for(int v:RAL[u]){
					if(ans[v])continue;
					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...