Submission #789979

#TimeUsernameProblemLanguageResultExecution timeMemory
789979Sohsoh84Toy Train (IOI17_train)C++17
5 / 100
17 ms24532 KiB
#include "train.h" #include <bits/stdc++.h> using namespace std; #define all(x) (x).begin(), (x).end() #define sep ' ' #define debug(x) cerr << #x << ": " << x << endl; const int MAXN = 1e6 + 10; int n, m; bool A[MAXN], R[MAXN]; vector<int> adj[MAXN]; bool W[MAXN]; vector<int> who_wins(vector<int> a_, vector<int> r_, vector<int> u_, vector<int> v_) { n = a_.size(); for (int i = 0; i < n; i++) A[i] = a_[i], R[i] = r_[i]; m = u_.size(); for (int i = 0; i < m; i++) adj[u_[i]].push_back(v_[i]); for (int i = n - 1; i >= 0; i--) { bool f1 = (find(all(adj[i]), i + 1) != adj[i].end()); bool f2 = (find(all(adj[i]), i) != adj[i].end()); if (A[i]) { if (R[i]) { if (f2) W[i] = 1; else W[i] = W[i + 1]; } else { if (f1) W[i] = W[i + 1]; else W[i] = 0; } } else { if (R[i]) { if (f1) W[i] = W[i + 1]; else W[i] = 1; } else { if (f2) W[i] = 0; else W[i] = W[i + 1]; } } } vector<int> res; for (int i = 0; i < n; i++) res.push_back(W[i]); 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...