제출 #72866

#제출 시각아이디문제언어결과실행 시간메모리
72866Sa1378장난감 기차 (IOI17_train)C++17
0 / 100
11 ms1672 KiB
#include "train.h"
#include <bits/stdc++.h>
using namespace std;
#define N ((int)100)

int n,m;
bool e[N][N],mark[N];
vector <int> now;

bool solve(vector <int> &a,vector <int> &r)
{
	int x=now.back();
	bool flg=0;
	for(int i=(int)now.size();i>=0;i--)
	{
		flg|=r[now[i]];
		if(flg!=a[x])break;
		if(e[x][i])return a[x];
	}
	for(int i=0;i<n;i++)
	{
		if(mark[i] || !e[x][i])continue;
		now.push_back(i);mark[i]=1;
		if(solve(a,r)==a[x])return a[x];
		now.pop_back();mark[i]=0;
	}
	return 1-a[x];
}


vector<int> who_wins(vector<int> a,vector<int> r,vector<int> u,vector<int> v)
{
	n=a.size();m=u.size();
	for(int i=0;i<m;i++)e[u[i]][v[i]]=1;
	vector <int> res;
	for(int i=0;i<n;i++)
	{
		now.push_back(i);mark[i]=1;
		res.push_back(solve(a,r));
		now.pop_back();mark[i]=0;
	}
	return res;
}
#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...