Submission #577610

#TimeUsernameProblemLanguageResultExecution timeMemory
577610Theo830Toy Train (IOI17_train)C++17
0 / 100
1317 ms1056 KiB
#include <bits/stdc++.h> using namespace std; typedef int ll; const ll INF = 1e9+7; const ll MOD = 998244353; typedef pair<ll,ll> ii; #define iii pair<ll,ii> #define ull unsigned int #define f(i,a,b) for(ll i = a;i < b;i++) #define pb push_back #define vll vector<ll> #define F first #define S second #define all(x) (x).begin(), (x).end() ///I hope I will get uprating and don't make mistakes ///I will never stop programming ///sqrt(-1) Love C++ ///Please don't hack me ///@TheofanisOrfanou Theo830 ///Think different approaches (bs,dp,greedy,graphs,shortest paths,mst) ///Stay Calm ///Look for special cases ///Beware of overflow and array bounds ///Think the problem backwards ///Training #include "train.h" bool ok[5005]; vector<vll>adj; vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> v) { vector<int> res(a.size()); ll n = a.size(); ll m = u.size(); adj.assign(n+5,vll()); f(i,0,m){ adj[u[i]].pb(v[i]); } f(i,0,n){ if(r[i] == 1){ bool v[n+5] = {0}; queue<ll>q; v[i] = 1; q.push(i); while(!q.empty()){ ll f = q.front(); q.pop(); for(auto x:adj[f]){ if(!v[x]){ v[x] = 1; q.push(x); } else if(x == i){ ok[i] = 1; break; } } } } } f(i,0,n){ res[i] = 0; bool v[n+5] = {0}; queue<ll>q; v[i] = 1; q.push(i); while(!q.empty()){ ll f = q.front(); q.pop(); for(auto x:adj[f]){ if(!v[x]){ v[x] = 1; res[i] |= ok[x]; q.push(x); } } } } return res; } /* int main(){ int n, m; assert(2 == scanf("%d %d", &n, &m)); vector<int> a(n), r(n), u(m), v(m); for(int i = 0; i < n; i++) assert(1 == scanf("%d", &a[i])); for(int i = 0; i < n; i++) assert(1 == scanf("%d", &r[i])); for(int i = 0; i < m; i++) assert(2 == scanf("%d %d", &u[i], &v[i])); vector<int> res = who_wins(a, r, u, v); for(int i = 0; i < (int)res.size(); i++) printf(i ? " %d" : "%d", res[i]); printf("\n"); return 0; } */
#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...