Cod sursa(job #622543)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 18 octombrie 2011 08:34:08
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream>
using namespace std;
short T,n,v[10100];

short B(int i);
short C(int i);

short B(int i)
{
	if(i>n+1)
		return i;
	if(v[i]==2)   // 2B
		return B(i+1);
	if(v[i]==1 && v[i+2]==3)  // 1A3AC
		return C(i+4);
	return n+2;
}

short C(int i)
{
	if(i>n+1)
		return i;
	if(v[i]==2) // 2
		return i+1;
	if(v[i]==3) // 3BC
		return C(B(i+1));
	if(v[i]==1 && v[i+1]==2)  // 12A
		return i+3;
	return n+2;
}

int main()
{
	int t,i,poz;
	ifstream fin("perle.in");
	ofstream fout("perle.out");
	fin>>T;
	for(t=0;t<T;t++)
	{
		fin>>n;
		for(i=1;i<=n;i++)
			fin>>v[i];
		if(n==1)
		{
			fout<<1<<"\n";
			continue;
		}
		poz=B(1);
		if(poz!=n+1)
			poz=C(1);
		if(poz==n+1)
			fout<<1<<"\n";
		else
			fout<<0<<"\n";
	}
	fout.close();
	return 0;
}