Submission #227712

#TimeUsernameProblemLanguageResultExecution timeMemory
227712AaronNaiduToy Train (IOI17_train)C++14
0 / 100
2098 ms1572 KiB
#include <bits/stdc++.h> using namespace std; vector<int> a, r, f; vector<int> graph[6000]; vector<bool> visited; int givesAWin[6000]; vector<int> DFSpath; bool cycleTime(int node, int orig) { if (r[node]) { return true; } if (node == orig) { return false; } return cycleTime(f[node], orig); } void checkForCycle(int node, int starter, bool atStart) { if (atStart) { visited[node] = true; DFSpath.push_back(node); for (auto i : graph[node]) { checkForCycle(i, starter, false); } DFSpath.pop_back(); return; } if (node == starter) { for (auto i : DFSpath) { givesAWin[i] = true; } return; } if (visited[node]) { if (givesAWin[node]) { for (auto i : DFSpath) { givesAWin[i] = true; } } return; } visited[node] = true; DFSpath.push_back(node); for (auto i : graph[node]) { checkForCycle(i, starter, atStart); } DFSpath.pop_back(); } vector<int> who_wins(vector<int> la, vector<int> lr, vector<int> lu, vector<int> lv) { a = la; r = lr; for (int i = 0; i < lu.size(); i++) { graph[lu[i]].push_back(lv[i]); } for (int i = 0; i < a.size(); i++) { f.push_back(-1); visited.push_back(false); } for (int i = 0; i < r.size(); i++) { if (r[i] == 1) { for (int j = 0; j < visited.size(); j++) { visited[j] = false; } checkForCycle(i, i, true); } } vector<int> toRet; for (int i = 0; i < a.size(); i++) { toRet.push_back(givesAWin[i]); } return toRet; }

Compilation message (stderr)

train.cpp: In function 'std::vector<int> who_wins(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
train.cpp:67:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < lu.size(); i++)
                     ~~^~~~~~~~~~~
train.cpp:71:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < a.size(); i++)
                     ~~^~~~~~~~~~
train.cpp:76:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < r.size(); i++)
                     ~~^~~~~~~~~~
train.cpp:80:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             for (int j = 0; j < visited.size(); j++)
                             ~~^~~~~~~~~~~~~~~~
train.cpp:89:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < a.size(); i++)
                     ~~^~~~~~~~~~
#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...