제출 #425834

#제출 시각아이디문제언어결과실행 시간메모리
425834tc_abd장난감 기차 (IOI17_train)C++14
0 / 100
1386 ms1356 KiB
#define fast ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0) #define It it=se.begin();it!=se.end();it++ #define mem(dp,i) memset(dp,i,sizeof(dp)) #define all(x) begin(x),end(x) #define unmap unordered_map #define pii pair<int,int> #include <bits/stdc++.h> #define pll pair<ll,ll> #define vll vector<ll> #define vi vector<int> #define ld long double #define ll long long #define pb push_back #define sh short int #define mid (l+r)/2 #define S second #define F first #define sqr 708 using namespace std; const ll inf = 1e9+1; const ll mod = 1e9+7; const int shift = 1e4; const ld pai=acos(-1); #include "train.h" int n,m; bool done[50009]; vi A,R,v[5009]; bool dfs(int node,bool t){ t = max(t,(bool)R[node]); if(done[node] == 1){ return t; } done[node] = 1; bool ret = 1-A[node]; for(auto u:v[node]){ if(A[node]){ ret = max(ret,dfs(u,t)); } else{ ret = min(ret,dfs(u,t)); } } return ret; } vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> vv) { n = a.size(),m = u.size(); for(int i=0;i<n;i++){ A.pb(a[i]); R.pb(r[i]); } for(int i=0;i<m;i++){ v[u[i]].pb(vv[i]); } vector<int> ret(n); for(int i=0;i<n;i++){ mem(done,0); ret[i] = dfs(i,0); } return ret; }
#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...