Cod sursa(job #2157274)
Utilizator | Data | 9 martie 2018 14:32:08 | |
---|---|---|---|
Problema | Perle | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.8 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int n, i, j, l, v[10010];
void b(int &x);
void c(int &x);
void b(int &x)
{
if(x<l)
{
if(v[x] == 2)
{
/// verific daca v[x+1] e b
x++;
b(x);
}
else if(v[x] == 1)
{
/// verific daca v[x+2] e 3
/// verific daca v[x+4] e c
if(v[x+2] == 3)
{
x += 4;
c(x);
}
}
}
}
void c(int &x)
{
if(x<=l)
{
if(v[x] == 2)
{
x++;
}
if(v[x] == 3)
{
///verific daca v[x+1] e b
///verific daca v[x+2] e c
x++;
b(x);
x = x;
c(x);
}
else if(v[x]==1)
{
///verific daca v[x+1] e 2
///true
if(v[x+1] == 2)
{
x+=3;
}
}
}
}
int main()
{
int x;
fin >> n;
for(i=1; i<=n; i++)
{
fin >> l;
for(j=1; j<=l; j++)
{
fin >> v[j];
}
if(l == 1)
{
fout << 1 << '\n';
}
else
{
x=1;
b(x);
if(x == l+1)
{
fout << 1 << '\n';
}
else
{
x=1;
c(x);
if(x == l+1)
{
fout << 1 << '\n';
}
else
{
fout << 0 << '\n';
}
}
}
}
return 0;
}