#include "train.h"
#include <bits/stdc++.h>
#define fst first
#define snd second
#define pb push_back
#define SZ(x) (int)x.size()
#define ALL(x) x.begin(),x.end()
#define forn(i,a,b) for(int i = a; i<b;i++)
#define mset(a,v) memset(a,v,sizeof(a))
using namespace std;
typedef long long ll;
const int MAXN = 5000+5;
ll adj[MAXN];
bool cicle[MAXN];
std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> v) {
mset(adj,-1);
forn(i,0,SZ(u)){
if(u[i]==v[i]){ cicle[u[i]]=true; continue; }
adj[u[i]]=(v[i]);
}
vector<int> res(SZ(r),0);
for(int i = SZ(r)-1; i>=0; i--){
if(a[i]==1){
if(r[i] && cicle[i]) res[i]=1;
else{
res[i]=0;
if(adj[i]!=-1) res[i]=res[adj[i]];
}
}else{
if(!r[i] && cicle[i]) res[i]=0;
else{
res[i]=1;
if(adj[i]!=-1) res[i]=res[adj[i]];
}
}
}
return res;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |