이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "train.h"
#define N 20009
#define pii pair <int, int>
#define ff first
#define ss second
#define sz() size()
#define pb push_back
#define ll long long
using namespace std;
bool a[N];
vector<int>ans;
int asd=0;
int vis[N], c[N];
map<int, int>M[N];
void dfs(int nd){
vis[nd]=1;
if(a[nd]){
asd=1;
return;
}
if(M[nd][nd+1] and !vis[nd+1])
dfs(nd+1);
a[nd]=asd;
}
std::vector<int> who_wins(std::vector<int>o, std::vector<int>p, std::vector<int>u, std::vector<int>v){
int n=o.sz();
int m=u.sz();
for(int i=0; i<m; i++){
M[u[i]][v[i]]=1;
if(u[i]==v[i])
c[u[i]]=1;
}
for(int i=0; i<n; i++)
if(p[i]==1 and o[i]==1 and c[i]==1)
a[i]=1;
for(int i=0; i<n; i++){
if(!a[i] and !vis[i])
asd=0, dfs(i);
ans.pb(a[i]);
}
return ans;
}
/*
int main(){
int n, m;
vector<int>o, p, u, v;
int x;
cin>>n>>m;
for(int i=0; i<n; i++)
cin>>x, o.pb(x);
for(int i=0; i<n; i++)
cin>>x, p.pb(x);
for(int i=0; i<m; i++)
cin>>x, u.pb(x);
for(int i=0; i<m; i++)
cin>>x, v.pb(x);
vector<int>ans=who_wins(o, p, u, v);
for(auto i:ans)
cout<<i<<' ';
}*/
# | 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... |