Submission #835748

#TimeUsernameProblemLanguageResultExecution timeMemory
835748JosiaToy Train (IOI17_train)C++17
0 / 100
2065 ms1616 KiB
#include "train.h" #include <bits/stdc++.h> using namespace std; vector<vector<int>> graph; vector<bool> own; vector<bool> station; vector<int> dp; vector<bool> vis; int dfs(int v) { if (station[v]) return 1; if (dp[v]!=-1) return dp[v]; if (vis[v]) return 0; vis[v] = 1; set<int> poss; for (int i: graph[v]) { poss.insert(dfs(i)); } if (own[v]) { if (poss.count(1)) return 1; return 0; } if (!own[v]) { if (poss.count(0)) return 0; return 1; } } vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v) { int n = a.size(); graph.assign(n, vector<int>()); for (int i = 0; i<(int)u.size(); i++) { graph[u[i]].push_back(v[i]); } own.resize(n); station.resize(n); for (int i = 0; i<n; i++) { own[i] = a[i]; station[i] = r[i]; } vector<int> res(n); for (int i = 0; i<n; i++) { vis.assign(n, 0); dp.assign(n, -1); res[i] = dfs(i); } return res; }

Compilation message (stderr)

train.cpp: In function 'int dfs(int)':
train.cpp:21:11: warning: control reaches end of non-void function [-Wreturn-type]
   21 |  set<int> poss;
      |           ^~~~
#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...