Pagini recente » Cod sursa (job #3135465) | Cod sursa (job #2667478) | Cod sursa (job #3216565) | Cod sursa (job #3148800) | Cod sursa (job #2500989)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("perle.in");
ofstream out ("perle.out");
int v[10004],n,ind;
void A()
{
ind++;
}
int B();
int C()
{
if (v[ind]==2)
{
ind++;
return 1;
}
if (v[ind]==3)
{
ind++;
if (ind>n) return 0;
if (B())
{
//ind++;
//if (ind>n) return 0;
if (C())
return 1;
return 0;
}
return 0;
}
if (v[ind]==1)
{
ind++;
if (ind>n) return 0;
if (v[ind]==2)
{
ind++;
if (ind>n) return 0;
A();
return 1;
}
}
return 0;
}
int B ()
{
if (v[ind]==2)
{
ind++;
if (ind>n)
return 0;
if (B())
return 1;
}
if (v[ind]==1)
{
ind++;
if (ind>n) return 0;
A();
if (ind>n) return 0;
if (v[ind]==3)
{
ind++;
if (ind>n) return 0;
A();
if (ind>n) return 0;
if (C())
return 1;
return 0;
}
}
return 0;
}
int main()
{
int m;
in>>m;
for (int j=1;j<=m;j++)
{
in>>n;
for (int i=1;i<=n;i++)
in>>v[i];
if (n==1)
{
out<<1<<'\n';
continue;
}
ind=1;
if (B() && ind==n+1)
{
out<<1<<'\n';
continue;
}
ind=1;
if (C() && ind==n+1)
{
out<<1<<'\n';
continue;
}
out<<0<<'\n';
}
return 0;
}