Pagini recente » Cod sursa (job #174811) | Cod sursa (job #2904818) | Cod sursa (job #801883) | Cod sursa (job #723144) | Cod sursa (job #1992933)
#include<fstream>
#include<iostream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int r=1,n,l,a[15][10005],pz;
void A(int x[10005],int &poz,int m);
void B(int x[10005],int &poz,int m);
void C(int x[10005],int &poz,int m);
void A(int x[10005],int &poz,int m)
{
if(r==0)
return;
if(poz>m)
{
r=0;
return;
}
poz++;
}
void B(int x[10005],int &poz,int m)
{
if(r==0)
return;
if(poz>m)
{
r=0;
return;
}
if(x[poz]==2)
{
poz++;
B(x,poz,m);
return;
}
if(x[poz]==3)
{
r=0;
return;
}
if(x[poz]==1)
{
poz++;
A(x,poz,m);
if(r==0||poz>m)
{
r=0;
return;
}
if(x[poz]!=3)
{
r=0;
return;
}
poz++;
A(x,poz,m);
if(r==0||poz>m)
{
r=0;
return;
}
C(x,poz,m);
}
}
void C(int x[10005],int &poz,int m)
{
if(r==0)
return;
if(poz>m)
{
r=0;
return;
}
if(x[poz]==2)
{
poz++;
return;
}
if(x[poz]==3)
{
poz++;
B(x,poz,m);
if(r==0||poz>m)
{
r=0;
return;
}
C(x,poz,m);
return;
}
if(x[poz]==1)
{
poz++;
if(x[poz]!=2)
{
r=0;
return;
}
poz++;
A(x,poz,m);
}
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>l;
for(int j=1;j<=l;j++)
fin>>a[i][j];
r=1;
pz=1;
A(a[i],pz,l);
if(r==1&&pz==l+1)
fout<<1<<'\n';
else
{
r=1;
pz=1;
B(a[i],pz,l);
if(r==1&&pz==l+1)
fout<<1<<'\n';
else
{
r=1;
pz=1;
C(a[i],pz,l);
if(r==1&&pz==l+1)
fout<<1<<'\n';
else
fout<<0<<'\n';
}
}
}
}