Cod sursa(job #253167)

Utilizator 630r63Ilinca George Mihai 630r63 Data 5 februarie 2009 15:13:05
Problema Perle Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.07 kb
 #include<stdio.h>  
 FILE *f=fopen("perle.in","r"),*g=fopen("perle.out","w");  
 int n,a[10001];  
 int c(int);  
 int b(int);  
 int b(int i)  
 {  
     if(*(a+i)==2)  
         return b(i+1);  
     if(*(a+i)==1&&*(a+2+i)==3)  
         return c(i+4);  
     return c(i+1);  
 }  
 int c(int i)  
 {  
     if(*(a+i)==2)  
     {  
         if(i==n)  
             return 1;  
         return c(i+1);  
     }  
     if(*(a+i)==1&&*(a+i+1)==2)  
     {  
         if(i+2==n)  
             return 1;  
         return c(i+3);  
     }  
     if(*(a+i)==3)  
         return b(i+1);  
     return 0;  
 }  
 int solve()  
 {  
     if(n==1)  
         return 1;  
     if(n==2)  
         return 0;  
     if(a[1]==3)  
         return c(1);  
     return b(1);  
 }  
 int main()  
 {  
     int len;  
     fscanf(f,"%d",&len);  
     for(int i=1;i<=len;i++)  
     {  
         fscanf(f,"%d",&n);  
         for(int j=1;j<=n;j++)  
             fscanf(f,"%d",&a[j]);  
         fprintf(g,"%d\n",solve());  
     }  
     return 0;  
}