Cod sursa(job #728100)

Utilizator robertpoeRobert Poenaru robertpoe Data 28 martie 2012 14:55:07
Problema Perle Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>
#define dim 123456
using namespace std;
ifstream f("perle.in");
ofstream g("perle.out");
int a[dim],n;
int k;
int valid2(int x);
int valid1(int x)
{
	if(a[x]==1&&a[x+2]==3)
		return valid2(x+4);
	if(x>=n+1)
		return -1;
	if(a[x]==2)
		return valid1(x+1);
	return -1;
}
int valid2(int x)
{
	if(a[x]==2)
		return x+1;
	if(a[x]==1 && a[x+1]==2)
		return x+3;
	if(a[x]==3)
		return valid2(valid1(x+1));
	return -1;
}
int sol=valid1(1);
void solve()
{
	for(int j=1;j<=k;j++)
	{
		f>>n;
		for(int i=1;i<=n;++i)
			f>>a[i];
		if(sol!=n+1)
			sol=valid2(1);
		if(n==1||sol==n+1)
			g<<1<<"\n";
		else
			g<<0<<"\n";
	}
}
int main()
{
	f>>k;
	solve();
	return 0;
}