#include "train.h"
#include <bits/stdc++.h>
using namespace std;
bool k = 0;
void cyc(int st, vector<int>g[], bool vis[], int orig){
vis[st]=1;
if(st==orig){
k=1;
}
for(int i : g[st]){
if(vis[i])
continue;
cyc(i,g,vis,orig);
}
}
bool ch = 0;
void check(int st, vector<int>g[],bool vis[], bool val[]){
vis[st]=1;
if(val[st])
ch=1;
for(int i : g[st]){
if(vis[i])
continue;
check(i,g,vis,val);
}
}
vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v) {
vector<int>ans;
int n = a.size();
int m = u.size();
for(int i : a){
assert(i);
}
vector<int>g[n];
for(int i = 0;i<m;i++){
g[u[i]].push_back(v[i]);
}
bool valid[n];
fill(valid,valid+n,0);
bool vis[n];
for(int i = 0;i<n;i++){
if(r[i]){
k=0;
fill(vis,vis+n,0);
cyc(i,g,vis,i);
if(k)
valid[i]=1;
}
}
for(int i = 0;i<n;i++){
ch=0;
fill(vis,vis+n,0);
check(i,g,vis,valid);
ans.push_back(ch);
}
return ans;
}
# | 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... |