Submission #608625

#TimeUsernameProblemLanguageResultExecution timeMemory
608625fvogel499Toy Train (IOI17_train)C++17
0 / 100
1828 ms1248 KiB
#include "train.h" #include <bits/stdc++.h> using namespace std; #define vi vector<int> #define size(x) (int)((x).size()) std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> v) { int n = size(a); vi rg [n]; for (int i = 0; i < size(u); i++) { rg[v[i]].push_back(u[i]); } int dp [n]; for (int i = 0; i < n; i++) dp[i] = r[i]; int sc = 0; for (int i : r) if (i) sc++; for (int _ = 0; _ < sc+5; _++) { for (int i = 0; i < n; i++) { vi to; for (int j : rg[i]) { to.push_back(dp[j]); if (r[j]) to.back()++; } if (to.empty()) continue; int use = to[0]; if (a[i] == 0) { for (int j : to) { use = min(use, j); } } else { for (int j : to) { use = max(use, j); } } dp[i] = max(dp[i], use); } } vi win; for (int i = 0; i < n; i++) { win.push_back((dp[i] >= sc+1)); } return win; }
#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...