Pagini recente » Cod sursa (job #464783) | Cod sursa (job #2061673) | Cod sursa (job #1151688) | Cod sursa (job #163195) | Cod sursa (job #2533450)
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int p,v[10004],n,i;
int A();
int B();
int C();
int A()
{
if(i==n+1)
return 0;
if(v[i]==1 || v[i]==2 || v[i]==3)
{
i++;
return 1;
}
else return 0;
}
int B()
{
if(i==n+1)
return 0;
if(v[i]==2)
{
i++;
return B();
}
else
if(v[i]==1)
{
i++;
int k=A();
if(k==0)
return 0;
if(v[i]!=3)
return 0;
i++;
k=A();
if(k==0)
return 0;
return C();
}
else return 0;
}
int C()
{
if(i==n+1)
return 0;
if(v[i]==2)
{
i++;
return 1;
}
else
if(v[i]==1)
{
i++;
if(v[i]!=2)
{
i++;
return 0;
}
else
{
i++;
return A();
}
}
else
{
i++;
int k=B();
if(k==0)
return 0;
return C();
}
}
int main()
{
fin>>p;
for(int i1=1;i1<=p;i1++)
{
fin>>n;
for(int i=1;i<=n;i++)
fin>>v[i];
i=1;
int r=A();
if(r==1 && i==n+1)
{
fout<<1<<"\n";
continue;
}
i=1;
r=B();
if(r==1 && i==n+1)
{
fout<<1<<"\n";
continue;
}
i=1;
r=C();
if(r==1 && i==n+1)
{
fout<<1<<"\n";
continue;
}
fout<<0<<"\n";
}
return 0;
}