Cod sursa(job #2329232)

Utilizator mihai50000Mihai-Cristian Popescu mihai50000 Data 26 ianuarie 2019 14:58:09
Problema Perle Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <bits/stdc++.h>

using namespace std;
	
ifstream in("perle.in");
ofstream out("perle.out");
	
const int DIM = 1e3 + 7;

int v[DIM];

void perlaB(int &pos);
void perlaC(int &pos);

int n;

void perlaB(int &pos)
{
	if(pos > n)
		return ;
	
	if(v[pos] == 2)
	{
		pos++;
		perlaB(pos);
		return ;
	}
	
	if(v[pos] == 1 && v[pos + 2] == 3)
	{
		pos += 4;
		perlaC(pos);
		return ;
	}
	
	pos--;
	return ;
}

void perlaC(int &pos)
{
	if(pos > n)
		return ;
	
	if(v[pos] == 2)
		return ;
	
	if(v[pos] == 3)
	{
		pos++;
		perlaB(pos);
		pos++;
		perlaC(pos);
		return ;
	}
	
	if(v[pos + 1] == 2)
	{
		pos += 2;
		return ;
	}
	else
	{
		pos--;
	}
	
	return ;
}

int main()
{
	int t;
	in >> t;
	
	while(t--)
	{
		in >> n;
		
		for(int i = 1; i <= n; i++)
			in >> v[i];
		
		if(n == 1)
		{
			out << 1 << '\n';
			continue;
		}
		
		int pos = 1;
		
		if(v[1] != 3)
		{
			perlaB(pos);
			
			if(pos == n)
			{
				cout << 1 << '\n';
				continue;
			}
		}
		
		pos = 1;
		perlaC(pos);
		
		if(pos == n)
			out << 1 << '\n';
		else
			out << 0 << '\n';
	}
}