Cod sursa(job #893733)

Utilizator radu2004GOLD radu radu2004 Data 26 februarie 2013 17:34:16
Problema Perle Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>

using namespace std;
int a[100],n,l,i,k;FILE *f,*g;
int c(int);
int b(int);
int c (int i)
{
    if (i<=l)
    {
        if (a[i]==2) return i;
        if (a[i]==3) return c(b(i+1)+1);
        if (a[i]==1 && a[i+1]==2) return i+2;
    }
    return 0;
}
int b( int i)
{
    if (i<=l)
    {
        if (a[i]==2) return b(i+1);
        if (a[i]==1 && a[i+2]==3) return c(i+4);
    }
    return 0;
}
int main()
{ f=fopen ("perle.in","r");
  g=fopen ("perle.out","w");
    fscanf (f,"%d",&n);
    for (k=1;k<=n;k++)
  {
      fscanf (f,"%d",&l);
      for (i=1;i<=l;i++) fscanf (f,"%d",&a[i]);
      if (l==1) fprintf (g,"%d\n",1);
       else if (b(1)==l || c(1)==l) fprintf (g,"%d\n",1);
                     else fprintf (g,"%d\n",0);
  }
    return 0;
}