Submission #56624

#TimeUsernameProblemLanguageResultExecution timeMemory
56624Crown장난감 기차 (IOI17_train)C++14
5 / 100
26 ms2616 KiB
#include "train.h"
#include <bits/stdc++.h>
using namespace std;
#define X first
#define Y second
#define pb push_back
typedef long long ll;
typedef pair<int, int> ii;

vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v)
{
	vector<int> has_cycle;
	vector<int> ending;
	int n = a.size();
	int m = u.size();
	ending.assign(n, 1);
	has_cycle.assign(n, 0);
	for(int i = 0; i< (int) m; i++)
	{
		if(u[i] != v[i])
			ending[u[i]] = false;
		else
			has_cycle[u[i]] = true;
	}
	vector<int> res(n);
	for(int i = n-1; i>= 0; i--)
	{
		if(a[i])
		{
			if(has_cycle[i])
			{
				if(r[i])
					res[i] = true;
				else
				{
					if(ending[i]) 
						res[i] = false;
					else 
						res[i] = res[i+1];
				}
			}
			else
				res[i] = res[i+1];
		}
		else
		{
			if(has_cycle[i])
			{
				if(!r[i])
					res[i] = false;
				else
				{
					if(ending[i])
						res[i] = true;
					else
						res[i] = res[i+1];
				}
			}
			else
				res[i] = res[i+1];
		}
	}
	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...