Cod sursa(job #192008)

Utilizator razvan2006razvan brezulianu razvan2006 Data 30 mai 2008 13:09:18
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
 #include <stdio.h>  
   
 int v[10002];  
   
 int rezolvaB(int);  
 int rezolvaC(int);  
   
 int rezolvaB(int in)  
 {  
     if (v[in]==2) return rezolvaB(in+1);  
     if (v[in]==1 && v[in+2]==3) return rezolvaC(in+4);  
     return rezolvaC(in+1);  
 }  
   
 int rezolvaC(int in)  
 {  
     if (v[in]==2)  
     {  
         if (in==v[0]) return 1;  
         return rezolvaC(in+1);     
     }  
     if (v[in]==1 && v[in+1]==2)  
     {  
         if (in+2==v[0]) return 1;  
         return rezolvaC(in+3);  
     }  
     if (v[in]==3) return rezolvaB(in+1);  
    return 0;  
 }  
   
 int rezolva()  
 {  
     if (v[0]==1) return 1;  
     else if (v[0]==2) return 2;  
     if (v[1]==3) return rezolvaC(1);  
     return rezolvaB(1);  
 }  
   
 int main()  
 {  
     freopen("perle.in", "rt", stdin);  
     freopen("perle.out", "wt", stdout);  
     int n, i, j;  
     scanf("%d\n", &n);  
     for (i=0; i<n; i++)  
     {  
         scanf("%d ", &v[0]);  
         for (j=1; j<=v[0]; j++) scanf("%d ", &v[j]);  
         printf("%d\n", rezolva());  
         scanf("\n");  
     }  
   
     return 0;  
}