#include "train.h"
#include<bits/stdc++.h>
using namespace std;
const int TAILLEMAXI = 5002;
vector<int> adja[TAILLEMAXI];
int nbsommets, nbaretes;
vector<int> appartenance,recharge;
int dejavu[TAILLEMAXI];
int dfs(int pos){
if (dejavu[pos]!=-1){
return dejavu[pos];
}
dejavu[pos]=0;
for (auto a:adja[pos]){
dejavu[pos]=max(dejavu[pos], dfs(a));
}
return dejavu[pos];
}
vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v) {
appartenance = a;
recharge = r;
nbsommets = appartenance.size();
nbaretes = u.size();
for (int i=0;i<nbaretes;i++){
adja[u[i]].push_back(v[i]);
}
for (int i=0;i<nbsommets;i++){
dejavu[i]=-1;
if (recharge[i]==1) {
dejavu[i]=1;
}
}
vector<int> rep;
for (int i=0;i<nbsommets;i++){
rep.push_back(dfs(i));
}
//cout<<dejavu[0]<<endl;
return rep;
}