Cod sursa(job #873792)

Utilizator Andrei1998Andrei Constantinescu Andrei1998 Data 7 februarie 2013 17:11:49
Problema Perle Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.25 kb
#include <iostream>


using namespace std;

int lungime;

char sir[10001];
int n;

int c(int poz);

int b(int poz)
{ 
   if(poz>lungime) 
      return 0;  
         
   if(sir[poz]=='2')
   {
         return b(poz+1);                 
   }
   else if(sir[poz]=='1' && sir[poz+2]=='3')
   {
      return c(poz+4);     
   }  
   
   return 0;
}

int aux;

int c(int poz)
{
   if(poz>lungime)
     return 0;
      
   if(sir[poz]=='2')
     return poz;
   else if(sir[poz]=='1' && sir[poz+1]=='2')
     return (poz+2);
   else if(sir[poz]=='3')
   {
      aux=b(poz+1);
      if(aux>0)
         return c(aux+1); //aux il are deja pe poz
      //else 
      //return 0; oricum se intra in final la return 0;     
   }
   
   return 0;
}

int main()
{
    int n;
    cin>>n;
    
    char cur[10001];
    int contor,i;
    
    for(contor=0;contor<n;contor++)
    {
        cin>>lungime;
    
        for(i=1;i<=lungime;i++)
           cin>>sir[i];
           
        if(lungime==1)
          cout<<"1\n";
        else if((b(1)==n) || (c(1)==n))
        {
          cout<<"1\n";    
        }
        else
        {
           cout<<"0\n";    
        }
    }
    
    system("PAUSE");
    return 0;
}