Submission #1198645

#TimeUsernameProblemLanguageResultExecution timeMemory
1198645dostsToy Train (IOI17_train)C++20
0 / 100
18 ms1608 KiB
#include "train.h" #include <bits/stdc++.h> #define int long long #define pii pair<int,int> #define vi vector<int> #define ff first #define ss second #define sp << " " << #define all(x) x.begin(),x.end() using namespace std; vi ans,go,chk; vector<vi> edges,egdes; void dfs(int node) { if (ans[node]) return; for (auto it : egdes[node]) { ans[it] = 1; dfs(it); } } int fl; void dfs2(int node) { if (go[node]) return; for (auto it : edges[node]) { go[it] = 1; dfs2(it); } } std::vector<int32_t> who_wins(std::vector<int32_t> a, std::vector<int32_t> r, std::vector<int32_t> u, std::vector<int32_t> v) { int n = a.size(); std::vector<int32_t> res(n,0); ans.assign(n,0); go.assign(n,0); edges.resize(n); egdes.resize(n); int m = u.size(); for (int i = 0;i<m;i++) { edges[u[i]].push_back(v[i]); egdes[v[i]].push_back(u[i]); } for (int i = 0;i<n;i++) { if (r[i]) { ans.assign(n,0); go.assign(n,0); dfs(i),dfs2(i); if (!go[i]) continue; for (int j = 0;j<n;j++) if (ans[j] && go[j]) res[j] = 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...