Cod sursa(job #2536987)

Utilizator Robert975Robert Robert975 Data 2 februarie 2020 21:25:01
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb

#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");

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

void b();

void c();

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

while (X > 0)
{
  --X;
  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 (v[2] == '2' && n == 3)
    {
      fout<<ok<<"\n";
      continue;
    }
    else if (v[3] == '3') {
      b();
    }
  }

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

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

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

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

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