Submission #409737

# Submission time Handle Problem Language Result Execution time Memory
409737 2021-05-21T12:42:22 Z Jasiekstrz Toy Train (IOI17_train) C++17
0 / 100
591 ms 1708 KB
#include<bits/stdc++.h>
#include "train.h"
using namespace std;
const int N=5e3;
bool ab[N+10];
bool charge[N+10];
vector<int> e[N+10];
bool vis[N+10][2];
bool dp[N+10][2];
bool win[N+10];
int g[N+10];
vector<int> st;
void dfs(int x,bool t)
{
	vis[x][t]=true;
	g[x]=st.size();
	st.push_back(x);
	if(charge[x] && !t)
	{
		if(!vis[x][1])
			dfs(x,1);
		dp[x][0]=dp[x][1];
		return;
	}
	dp[x][t]=!ab[x];
	for(auto v:e[x])
	{
		if(g[v]==1)
		{
			if(ab[x]==t)
			{
				dp[x][t]=ab[x];
				break;
			}
			else
				continue;
		}
		else if(g[v]!=0)
		{
			if(!ab[x])
			{
				dp[x][t]=false;
				break;
			}
			else
				continue;
		}
		if(!vis[v][t])
			dfs(v,t);
		if(dp[v][t]==ab[x])
		{
			dp[x][t]=ab[x];
			break;
		}
	}
	g[x]=0;
	st.pop_back();
	return;
}
void dfsw(int x,int fch)
{
	vis[x][0]=true;
	g[x]=st.size();
	st.push_back(x);
	if(charge[x])
		fch=g[x];
	bool sm=false;
	for(auto v:e[x])
	{
		if(g[v]!=0)
		{
			if((g[v]<=fch)==ab[x])
				sm=true;
		}
		else
		{
			if(!vis[v][0])
				dfsw(v,fch);
			if(win[v]==ab[x])
				sm=true;
		}
	}
	if(!win[x])
		win[x]=(sm ? ab[x]:!ab[x]);
	g[x]=0;
	st.pop_back();
	return;
}
vector<int> who_wins(vector<int> a,vector<int> r,vector<int> u,vector<int> v)
{
	int n=a.size(),m=u.size();
	for(int i=0;i<n;i++)
	{
		ab[i]=a[i];
		charge[i]=r[i];
	}
	for(int i=0;i<m;i++)
		e[u[i]].push_back(v[i]);
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
			vis[j][0]=vis[i][1]=false;
		dfs(i,0);
		win[i]=dp[i][0];
	}
	for(int i=0;i<n;i++)
		vis[i][0]=vis[i][1]=false;
	for(int i=0;i<n;i++)
	{
		if(!vis[i][0])
			dfsw(i,0);
	}
	vector<int> ans(n);
	for(int i=0;i<n;i++)
		ans[i]=win[i];
	return ans;
}
# Verdict Execution time Memory Grader output
1 Correct 17 ms 1356 KB Output is correct
2 Correct 17 ms 1124 KB Output is correct
3 Correct 18 ms 920 KB Output is correct
4 Correct 18 ms 1024 KB Output is correct
5 Correct 17 ms 920 KB Output is correct
6 Correct 17 ms 912 KB Output is correct
7 Correct 17 ms 848 KB Output is correct
8 Correct 17 ms 848 KB Output is correct
9 Correct 17 ms 844 KB Output is correct
10 Correct 17 ms 900 KB Output is correct
11 Incorrect 18 ms 844 KB 3rd lines differ - on the 1st token, expected: '0', found: '1'
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 332 KB 3rd lines differ - on the 2nd token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 177 ms 1708 KB 3rd lines differ - on the 1st token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 20 ms 1256 KB 3rd lines differ - on the 60th token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 591 ms 1460 KB 3rd lines differ - on the 1st token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 17 ms 1356 KB Output is correct
2 Correct 17 ms 1124 KB Output is correct
3 Correct 18 ms 920 KB Output is correct
4 Correct 18 ms 1024 KB Output is correct
5 Correct 17 ms 920 KB Output is correct
6 Correct 17 ms 912 KB Output is correct
7 Correct 17 ms 848 KB Output is correct
8 Correct 17 ms 848 KB Output is correct
9 Correct 17 ms 844 KB Output is correct
10 Correct 17 ms 900 KB Output is correct
11 Incorrect 18 ms 844 KB 3rd lines differ - on the 1st token, expected: '0', found: '1'