제출 #574586

#제출 시각아이디문제언어결과실행 시간메모리
574586definitelynotmeeToy Train (IOI17_train)C++98
0 / 100
6 ms1512 KiB
#include<bits/stdc++.h> #include"train.h" #define ff first #define ss second #define all(x) x.begin(), x.end() using namespace std; using ll = long long; using pii = pair<int,int>; using pll = pair<ll,ll>; template<typename T> using matrix = vector<vector<T>>; std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> v) { int owned = accumulate(all(a),0); int n = a.size(), m = u.size(); vector<int> resp(n); matrix<int> g(n), rev(n); for(int i = 0; i < m; i++){ g[u[i]].push_back(v[i]); rev[v[i]].push_back(u[i]); } if(owned == n){ vector<int> check(n); auto dfs =[&](int id, auto dfs)->void{ check[id] = 1; for(int i : rev[id]) if(!check[i]) dfs(i,dfs); }; for(int i = 0; i < n; i++){ if(!check[i] && r[i]) dfs(i,dfs); } for(int i = 0; i < n; i++){ for(int j : g[i]) resp[i]|=check[j]; } for(int i = 0; i < n; i++) resp[i]&=r[i]; } else { } return resp; }
#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...