Cod sursa(job #559675)

Utilizator flaviusc11Fl. C. flaviusc11 Data 17 martie 2011 23:27:03
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.41 kb
#include <fstream>
using namespace std;
int t[10003],i,m,n;
void b();
void c();
int main()
{
    int j;
    ifstream f("perle.in");
    ofstream g("perle.out");
    f>>n;
    while (n--)
    {
          f>>m;
          for (i=1;i<=m;i++)
              f>>t[i];
              for(j=0;j<4;j++)
              switch(j)
              {
                  case 0: if(m==1) g<<1<<'\n'; break;
                  case 1: if(m==2) g<<0<<'\n'; break;
                  case 2: if(m==3)
                             if(t[1]==1 && t[2]==2)
                                g<<1<<'\n';
                             else
                                g<<0<<'\n';
                          break;
                  case 3:  if(m>3)
                            {
                                i=1;
                                if (t[1]==1 || t[1]==2) b(); else c();
                                if (i==m) g<<1<<'\n'; else g<<0<<'\n'; break;
                            } break;
              }
    }
return 0;
}

void b()
{
   if (i<=m)
     switch(t[i])
        {
        case 1: i=i+4;
                c();
                break;
        case 2: i++;
                b();
        }
}

void c()
{
 if (i<=m)
     switch(t[i])
     {
        case 1: if(t[i+1]==2 || i==m) i=i+2;
                    break;
        case 3: i++; b(); i++; c();
                    break;
     }
}