Submission #296618

#TimeUsernameProblemLanguageResultExecution timeMemory
296618DovranToy Train (IOI17_train)C++11
0 / 100
14 ms3072 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...