Cod sursa(job #134030)

Utilizator omu_salcamtache tudor omu_salcam Data 10 februarie 2008 13:18:35
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include<stdio.h>
#include<string.h>
long a,b,n,m,ok,cur;
char v[1111],c;
FILE *f1,*f2;
void scr(long poz){
long i;
for(i=poz;i<m;v[i]=v[i+1],i++);
v[m]=NULL;
m--;
}
void ver(){
long j;
ok=0;
for(j=1;j<m;j++){
	if(v[j]=='2'&&v[j+1]=='B'){
		ok=1;
		v[j]='B';
		scr(j+1);
	}
	if(j<m-3&&v[j]=='1'&&(v[j+1]=='A'||v[j+1]=='1'||v[j+1]=='2'||v[j+1]=='3')&&v[j+2]=='3'&&(v[j+3]=='A'||v[j+3]=='1'||v[j+3]=='2'||v[j+3]=='3')&&(v[j+4]=='C'||v[j+4]=='2')){
		ok=1;
		v[j]='B';
		scr(j+1);
		scr(j+1);
		scr(j+1);
		scr(j+1);
	}
	if(j<m-1&&v[j]=='3'&&v[j+1]=='B'&&(v[j+2]=='C'||v[j+2]=='2')){
		ok=1;
		v[j]='C';
		scr(j+1);
		scr(j+1);
	}
	if(j<m-1&&v[j]=='1'&&v[j+1]=='2'&&(v[j+1]=='A'||v[j+1]=='1'||v[j+1]=='2'||v[j+1]=='3')){
		ok=1;
		v[j]='C';
		scr(j+1);
		scr(j+1);
	}
}
}
int main(){
long i,j;
f1=fopen("perle.in","r");
f2=fopen("perle.out","w");
fscanf(f1,"%ld",&n);
for(i=1;i<=n;i++){
	fscanf(f1,"%ld",&m);
	for(j=1;j<=m;fscanf(f1,"%c%c",&c,&v[j]),j++);
	ok=1;
	while(ok){
		ver();
	}
	if(m==1){
		fprintf(f2,"1\n");
	}
	else{
		fprintf(f2,"0\n");
	}
}
return 0;
}