# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
427555 | 2021-06-14T17:05:19 Z | markthitrin | Toy Train (IOI17_train) | C++14 | 2000 ms | 6880 KB |
#include "train.h" #include <vector> #include <iostream> int N,M; std::vector<int> f[5005]; std::vector<int> inv_f[5005]; std::vector<int> ans; int degree[5005]; int m[5005]; bool come[5005]; bool reachable[5005]; bool visit[5005]; void inv_bfs(std::vector<int>& a,int pos){ if(come[pos]) return; come[pos] = true; for(int q = 0;q<inv_f[pos].size();q++){ m[inv_f[pos][q]]++; if(a[inv_f[pos][q]] == 0 && degree[inv_f[pos][q]] == m[inv_f[pos][q]]){ inv_bfs(a,inv_f[pos][q]); } else inv_bfs(a,inv_f[pos][q]); } } void bfs(std::vector<int>& a,int pos){ if(visit[pos]) return; if(come[pos]) reachable[pos] = true; else return; visit[pos] =true; for(int q = 0 ;q<f[pos].size();q++){ bfs(a,f[pos][q]); } } void last_func(std::vector<int> a,int pos){ if(a[pos] == 0 && m[pos] != degree[pos] && !reachable[pos]) return; if(ans[pos] == 1) return; ans[pos] = 1; for(int q = 0 ;q<inv_f[q].size();q++){ m[inv_f[pos][q]]++; last_func(a,inv_f[pos][q]); } } std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> v) { N = a.size(); M = u.size(); for(int q = 0 ;q<N;q++){ ans.push_back(0); } for(int q = 0 ;q<M;q++){ f[u[q]].push_back(v[q]); inv_f[v[q]].push_back(u[q]); degree[u[q]]++; } for(int q = 0;q<N;q++){ if(r[q]){ for(int w = 0 ;w<N;w++){ m[w] = 0; come[w] = false; visit[w] = false; } inv_bfs(a,q); bfs(a,q); } } for(int w = 0;w<N;w++){ m[w] = 0; } for(int q= 0;q<N;q++){ if(reachable[q]) last_func(a,q); } return ans; } /* 2 4 0 1 1 0 0 0 0 1 1 0 1 1 1 1 */
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 202 ms | 1348 KB | 3rd lines differ - on the 1st token, expected: '0', found: '1' |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 460 KB | 3rd lines differ - on the 1st token, expected: '0', found: '1' |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 95 ms | 1768 KB | 3rd lines differ - on the 1st token, expected: '0', found: '1' |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2075 ms | 1388 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 14 ms | 6880 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 202 ms | 1348 KB | 3rd lines differ - on the 1st token, expected: '0', found: '1' |
2 | Halted | 0 ms | 0 KB | - |