Cod sursa(job #673286)

Utilizator Lokycatalin petre Loky Data 4 februarie 2012 11:18:27
Problema Perle Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.35 kb
#include <fstream>

using namespace std;

bool ok;
long int n,x,a[15000],j,i,k;

int main()
{
	ifstream f("perle.in");
	ofstream g("perle.out");
	f>>n;
	for (i=1;i<=n;i++) {
		f>>x;
		for (j=1;j<=x;j++)
			f>>a[j];
	if (x==2 ||x==4) g<<'0'<<'\n';
		if (x==1)  {
			if (a[1]<4) g<<'1'<<'\n';
			else
			g<<'0'<<'\n';
		}
		if (x==3) {
			if (a[1]==1 &&a[2]==2) {
				if (a[3]<4) g<<'1'<<'\n';
				else
					g<<'0'<<'\n';
			}
			else
				g<<'0'<<'\n';
		}
		if (x==5) {
			if (a[1]==1 &&a[3]==3 &&a[5]==2) {
				if (a[2]<4 &&a[4]<4) g<<'1'<<'\n';
				else
					g<<'0'<<'\n';
			}
		else
			g<<'0'<<'\n';
		}
		if (x==6) {
			if (a[1]==2 &&a[2]==1 &&a[4]==3 &&a[6]==2) {
				if (a[3]<4 &&a[5]<4) g<<'1'<<'\n';
				else
					g<<'0'<<'\n';
			}
		else
			g<<'0'<<'\n';
		}
		ok=false;
		if (x==7) {
			if (a[1]==3 && a[2]==1 &&a[4]==3 &&a[6]==2 &&a[7]==2) {
				ok=true;
				if (a[3]<4 &&a[5]<4) g<<'1'<<'\n';
			else
				g<<'0'<<'\n';
			}
			if (a[1]==1 &&a[3]==3 &&a[5]==1 &&a[6]==2) {
				ok=true;
				if (a[2]<4 &&a[4]<4 <<a[7]<4) g<<'1'<<'\n';
				else
					g<<'0'<<'\n';
			}
			if (ok==false) g<<'0'<<'\n';
		}
		
		if (x==8) {
			if (a[1]==2 &&a[2]==1 &&a[4]==3 &&a[6]==1 &&a[7]==2) {
				if (a[3]<4 &&a[5]<4 &&a[8]<4) g<<'1'<<'\n';
				else
					g<<'0'<<'\n';
			}
			else
			g<<'0'<<'\n';
		}
		
		ok=false;
		if (x==9) {
			if (a[1]==3 &&a[2]==1 &&a[4]==3 &&a[6]==1 &&a[7]==2 &&a[9]==2) {
				ok=true;
				if (a[3]<4 &&a[5]<4 &&a[8]<4) g<<'1'<<'\n';
				else
				g<<'0'<<'\n';
			}
			if (a[1]==3 &&a[2]==1 &&a[4]==3 &&a[6]==2 &&a[7]==1 &&a[8]==2) {
				ok=true;
				if (a[3]<4 &&a[5]<4 &&a[9]<4) g<<'1'<<'\n';
				else
				g<<'0'<<'\n';
			}
			if (ok==false) g<<'0'<<'\n';
		}
	
		ok=false;
		if (x==10) {
			if (a[1]==3 &&a[2]==2 &&a[3]==1 &&a[5]==3 &&a[7]==1 &&a[8]==2 &&a[10]==2) {
				ok=true;
				if (a[4]<4 &&a[6]<4 &&a[9]<4) g<<'1'<<'\n';
				else
				g<<'0'<<'\n';
			}
			if (a[1]==3 &&a[2]==2 &&a[3]==1 &&a[5]==3 &&a[7]==2 &&a[8]==1 &&a[9]==2) {
				ok=true;
				if (a[4]<4 &&a[6]<4 &&a[10]<4) g<<'1'<<'\n';
				else
				g<<'0'<<'\n';
			}
			if (ok==false) g<<'0'<<'\n';
	}
		if (x>10) {
			ok=false;
			for (k=1;k<=x;k++)
				if (a[k]>3) {ok=true;break;}
			if (ok==true) g<<'0'<<'\n';
				else
			g<<'1'<<'\n';
	}
	}
			
			
	f.close();
	g.close();
	return 0;
}