#include "train.h"
#include<bits/stdc++.h>
#define int long long
#define pb push_back
#define mp make_pair
#define vb vector<bool>
#define vi vector<int>
#define vvi vector<vi>
#define pii pair<int,int>
#define vpii vector<pii>
#define f0r(i,n) for(int i = 0; i<n; i++)
#define FOR(i, k, n) for(int i = k; i<n; i++)
const int mxn = 5e3 + 5;
using namespace std;
vvi adj(mxn);
int n, m;
std::vector<signed> who_wins(std::vector<signed> a, std::vector<signed> r, std::vector<signed> u, std::vector<signed> v) {
n = a.size(); m = u.size();
vi nxt(n);
vi cyc(n);
f0r(i, m){
if(u[i] + 1 == v[i])nxt[u[i]] = 1;
else cyc[u[i]] = 1;
}
vector<signed> ans(n);
f0r(tt, n){
int x = tt;
if(cyc[x] && a[x] == 1 && r[x] == 1){
ans[tt] = 1; continue;
}
if(cyc[x] && a[x] == 0 && r[x] == 0){
ans[tt] = 0; continue;
}
bool ok = 0;
while(nxt[x]){
x++;
if(cyc[x] && a[x] == 1 && r[x] == 1){
ans[tt] = 1; ok = 1; break;
}
if(cyc[x] && a[x] == 0 && r[x] == 0){
ans[tt] = 0; ok = 1; break;
}
}
if(ok)continue;
ans[tt] = 0;
}
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... |