Pagini recente » Cod sursa (job #2859535) | Cod sursa (job #3219701) | Cod sursa (job #1217043) | Cod sursa (job #2290761) | Cod sursa (job #2926894)
#include <fstream>
using namespace std;
ifstream fin ("perle.in");
ofstream fout("perle.out");
int solvea();
int solveb();
int solvec();
int n,i,l,j,V[10003];
int main()
{
fin>>n;
for(i=1;i<=n;i++)
{
fin>>l;
for(j=1;j<=l;j++)
fin>>V[j];
j=1;
if(solvea()&&j>l)
{
fout<<1<<"\n";
continue;
}
j=1;
if(solveb()&&j>l)
{
fout<<1<<"\n";
continue;
}
j=1;
if(solvec()&&j>l)
{
fout<<1<<"\n";
continue;
}
fout<<0<<"\n";
}
return 0;
}
int solvea()
{
if(j>l)
return 0;
if(V[j]==1||V[j]==2||V[j]==3)
{
j++;
return 1;
}
else
return 0;
}
int solveb()
{
if(j>l)
return 0;
int S;
if(V[j]==2)
{
j++;
return solveb();
}
else
if(V[j]==1)
{
j++;
S=solvea();
if(S==0)
return 0;
if(V[j]!=3)
return 0;
j++;
S=solvea();
if(S==0)
return 0;
return solvec();
}
else
return 0;
}
int solvec()
{
if(j>l)
return 0;
if(V[j]==2)
{
j++;
return 1;
}
else
if(V[j]==1)
{
j++;
if(V[j]!=2)
{
j++;
return 0;
}
else
{
j++;
return solvea();
}
}
else
{
int S;
j++;
S=solveb();
if(S==0)
return 0;
return solvec();
}
}