Cod sursa(job #2536980)

Utilizator Robert975Robert Robert975 Data 2 februarie 2020 21:21:38
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");

int n, i, j = 1;
char v[10004];
bool ok;

void b();

void c();

int main ()
{
int X;
fin>>X;

  while (X > 0)
  {
    --X;
    char l;
    fin>>n;

    for (i = 1; i <= n; i++)
      fin>>v[i];

      ok = true;
      if (n == 1)
      {
        fout<<ok<<"\n";
        continue;
      }

    j = 1;
    if (v[1] == '1')
    {
      if (n == 3)
        c();
      else
        b();
    }

    else if (v[1] == '2')
      b();
    else
      c();
    if (j != n)
      ok = false;

    fout<<ok<<"\n";
  }
  return 0;
}

void b()
{
  if (j > n)
    return;
  if (v[j] == '2')
  {
    ++j;
    b();
  }

  else if (v[j] == '1' && v[j + 2] == '3')
  {
    j += 4;
    c();
  }
  else
    ok = false;
}

void c()
{
  if (v[j] == '2')
    return;

  if (v[j] == '1' && v[j + 1] == '2')
  {
    j += 2;
    return;
  }
  else if (v[j] == '3')
  {
    ++j;
    b();
    ++j;
    c();
  }
  else
    ok = false;
}