Cod sursa(job #1828009)

Utilizator Eduard663676Ghiuzan Eduard Eduard663676 Data 12 decembrie 2016 18:02:48
Problema Perle Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream.h>
#include <fstream.h>
int main (){
	int v[100],n,i,c,j,l,q=1,k=0;
	ifstream f("perle.in");
	ofstream g("perle.out");
	f>>l;
	for(j=1;j<=l;j++){ c=1;
		f>>n;
		for(i=1;i<=n;i++)
			f>>v[i]; i=1;
		if(n!=1)
			while(n!=0 && c==1){
				c=0;
				if((v[i]==2 || v[i]==3 && k==0) && n-i+1>2){ cout<<"#1 ";
					if(v[i]==2)
						k=1;
					c=1; i++; q=0;
				}
				else
					if(v[i]==1 && v[i+2]==3 && n-i+1>3){ cout<<"#2 ";
						c=1; i+=4; cout<<n-i; cout<<" i="<<i;
						if(((v[i]==1 && v[i+1]==2 && v[i+3]==2 && n-i+1==4)||(v[i]==2 && v[i+1]==1 && v[i+2]==2 && n-i+1==4)||(v[i]==2 && v[i+1]==2 && n-i+1==2)||(v[i]==1 && v[i+1]==2 && v[i+3]==1 && v[i+4]==2 && n-i+1==6)) && n-i-q>0){
							c=1; break;
						}
						q=0; k=0;
					}
					else
						if(v[i]==1 && v[i+1]==2 && n-i+1==3){ cout<<"#3 ";
							c=1; break;
						}
						else
							if(n-i+1==1 && v[i]==2){ cout<<"#4 ";
								c=1; break;
							}
			}
		if(c==1)
			g<<1<<endl;
		else
			g<<0<<endl;
	}
	f.close();
	g.close();
}