Pagini recente » Cod sursa (job #135688) | Cod sursa (job #1638742) | Cod sursa (job #2545854) | Cod sursa (job #652421) | Cod sursa (job #2500642)
#include <fstream>
int n, v[10005],i;
using namespace std;
void A()
{
i++;
}
int C();
int B()
{
if(v[i]==2)
{
i++;
if(i>n)
return 0;
if(B())
return 1;
else
return 0;
}
if(v[i]==1)
{
i++;
if(i>n)
return 0;
A();
if(v[i]!=3)
return 0;
i++;
if(i>n)
return 0;
A();
if(i>n)
return 0;
if(C())
return 1;
else
return 0;
}
return 0;
}
int C()
{
if(v[i]==2)
{
i++;
return 1;
}
if(v[i]==3)
{
i++;
if(i>n)
return 0;
if(!B())
return 0;
if(!C())
return 0;
return 1;
}
if(v[i]==1)
{
i++;
if(i>n)
return 0;
if(v[i]==2)
{
i++;
if(i>n)
return 0;
A();
return 1;
}
else
return 0;
}
return 0;//degeaba
}
int main()
{
ifstream in("perle.in");
ofstream out("perle.out");
int t,m;
in>>m;
for(t=1;t<=m;t++)
{
in>>n;
for(i=1;i<=n;i++)
in>>v[i];
i=1;A();
if(i==n+1)
{
out<<1<<'\n';
continue;
}
i=1;
if(B() and i==n+1)
{
out<<1<<'\n';
continue;
}
i=1;
if(C() and i==n+1)
{
out<<1<<'\n';
return 0;
}
out<<0<<'\n';
}
return 0;
}