Submission #747027

#TimeUsernameProblemLanguageResultExecution timeMemory
747027danikoynov장난감 기차 (IOI17_train)C++14
0 / 100
1400 ms1352 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 5010; int n, m, a[maxn], r[maxn], cycle[maxn], nxt[maxn]; vector < int > g[maxn]; int tf, used[maxn]; void dfs(int v) { used[v] = 1; for (int u : g[v]) { if (!used[u]) { dfs(u); } else { if (used[u] == 1) { cycle[v] = 1; } else if (cycle[u]) cycle[v] = 1; } } used[v] = 2; } 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 < n; i ++) a[i] = A[i]; for (int i = 0; i < n; i ++) r[i] = R[i]; for (int i = 0; i < m; i ++) { g[U[i]].push_back(V[i]); } vector < int > res(n, 0); for (int i = 0; i < n; i ++) { for (int j = 0; j < n; j ++) used[j] = 0, cycle[j] = 0; dfs(i); for (int j = 0; j < n; j ++) if (cycle[j] && r[j]) res[i] = 1; } return res; }
#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...