Submission #134501

#TimeUsernameProblemLanguageResultExecution timeMemory
134501amiratouToy Train (IOI17_train)C++14
0 / 100
2051 ms26240 KiB
#include "train.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> A,R;
int n;
vector<vector<int> > vec;
bool vis[5001][5001];
bool dfs(int node,int e){
	//cerr<<node<<" "<<e<<"\n";
	if(vis[node][e]&&e)return 1;
	if(vis[node][e])return 0;
	vis[node][e]=1;
	if(!e&&!R[node])return 0;
	for(auto child:vec[node]){
		bool res=dfs(child,(R[child]?A.size():e-1));
		//cerr<<child<<"-----\n";
		if(!A[node]&&!res)return 0;
		if(A[node]&&res)return 1;
	}
	return !A[node];
}

vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v) {
	A=a,R=r;
	n=a.size();
	vec.resize(a.size());
	for (int i = 0; i < u.size(); ++i)
		vec[u[i]].push_back(v[i]);
	vector<int> res(n);
	for (int i = 0; i < n; ++i){
		for (int a = 0; a < n; ++a)
			for (int b = 0; b <= n; ++b)
				vis[a][b]=0;
		res[i]=dfs(i,n);
	}
	return res;
}

Compilation message (stderr)

train.cpp: In function 'std::vector<int> who_wins(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
train.cpp:28:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < u.size(); ++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...