제출 #291012

#제출 시각아이디문제언어결과실행 시간메모리
291012Saboon장난감 기차 (IOI17_train)C++17
11 / 100
1080 ms1544 KiB
// Subtask 3
#include "train.h"
#include <bits/stdc++.h>
using namespace std;
const int maxn = 5000 + 10;
int n, m;

vector<int> g[maxn];
bool visited[maxn];

void dfs(int v){
	visited[v] = 1;
	for (auto u : g[v])
		if (!visited[u])
			dfs(u);
}

vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v) {
	n = a.size(), m = u.size();
	for (int i = 0; i < m; i++){
		g[v[i]].push_back(u[i]);
	}
	vector<int> dp(n);
	for (int i = 0; i < n; i++){
		dp[i] = 0;
		if (r[i]){
			memset(visited, 0, sizeof visited);
			dfs(i);
			for (int j = 0; j < m; j++)
				if (visited[v[j]] and u[j] == i)
					dp[i] = 1;
		}
	}
	for (int t = 0; t < n; t++)
		for (int i = 0; i < m; i++)
			dp[u[i]] |= dp[v[i]];
	return dp;
}
#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...