제출 #1064161

#제출 시각아이디문제언어결과실행 시간메모리
1064161IgnutToy Train (IOI17_train)C++17
11 / 100
699 ms1620 KiB
// Ignut #include <bits/stdc++.h> using namespace std; using ll = long long; const int N = 5555; int n, m; vector<int> a, r; vector<int> g[N]; bool ans = false; int used[N]; bool good[N]; void dfs(int v) { used[v] = true; ans |= good[v]; if (ans) return; for (int to : g[v]) if (!used[to]) dfs(to); } void dfs1(int v, int st) { if (good[st]) return; used[v] = true; for (int to : g[v]) { if (to == st) { good[st] = true; return; } if (!used[to]) dfs1(to, st); } } vector<int> who_wins(vector<int> A, vector<int> R, vector<int> u, vector<int> v) { n = A.size(), m = u.size(); a = A, r = R; for (int i = 0; i < m; i ++) { g[u[i]].push_back(v[i]); } for (int i = 0; i < n; i ++) { if (r[i] == 0) continue; for (int j = 0; j < n; j ++) used[j] = false; dfs1(i, i); } vector<int> res; for (int s = 0; s < n; s ++) { ans = false; for (int i = 0; i < n; i ++) used[i] = 0; dfs(s); res.push_back(ans); } 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...