Cod sursa(job #2153980)

Utilizator Anastasia11Susciuc Anastasia Anastasia11 Data 6 martie 2018 16:52:31
Problema Perle Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>

using namespace std;

ifstream f("perle.in");
ofstream g("perle.out");

void read()
{
     f >> n ;
     for ( int i = 1 ; i <= n ; i ++ )
        f >> v[i];
}
// A -> 1 | 2 | 3
// B -> 2B | 1A3AC
// C -> 2 | 3BC | 12A
void rezC();
void rezA()
{
    if(pos!=0)
        pos++;
}
void rezB()
{
    if(pos==0)
        return;
    if(v[pos]==2)
      {
         pos++;
         rezB();
      }
       else
        if(v[pos]==1)
       {
         rezA();
         pos++;
          if ( pos != 3 )
          {
              pos=0;
              return;
          }
          rezA();
          rezC();
       }
       else
        pos=0;
}
void rezC()
{
    if(v[pos]==2)
        pos++;
    else
        if(v[pos]==3)
          {
        rezA();
        rezB();
          }
          else

}
void solve()
{
    bool ok=0;
     pos=1;rezA();
      if(pos==n+1)
        ok=1;
     pos=1;rezB();
      if(pos==n+1)
        ok=1;
     pos=1;rezC();
      if(pos==n+1)
        ok=1;
     g << ok << '\n';
}

int main()
{
     for ( f >> t ; t ; t--)
    {
        read();
        solve();
    }
    return 0;
}