Pagini recente » Cod sursa (job #467761) | Cod sursa (job #1072063) | Cod sursa (job #1039277) | Cod sursa (job #2514922) | Cod sursa (job #2151288)
#include<bits/stdc++.h>
using namespace std;
int i,n,v[10005];
inline int A();
inline int B();
inline int C();
inline int A()
{
if(i>n) return 0;
i++;
return 1;
}
inline int B()
{
if(i>n)
return 0;
if(v[i]==3)
{
i++;
return 0;
}
if(v[i]==2)
{
i++;
return B();
}
if(v[i]==1)
{
i++;
if(!A()) return 0;
if(v[i]!=3) return 0;
i++;
if(!A()) return 0;
if(!C()) return 0;
return 1;
}
return 0;
}
inline int C()
{
if(i>n) return 0;
if(v[i]==2)
{
i++;
return 1;
}
if(v[i]==1)
{
i++;
if(v[i]!=2) return 0;
i++;
if(!A()) return 0;
return 1;
}
if(v[i]==3)
{
i++;
if(!B()) return 0;
if(!C()) return 0;
return 1;
}
return 0;
}
int t;
int main()
{
freopen("perle.in","r",stdin);
freopen("perle.out","w",stdout);
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&v[i]);
i=1;
int sol=A();
if(i>n && sol)
{
printf("1\n");
continue;
}
i=1;
sol=B();
if(i>n && sol)
{
printf("1\n");
continue;
}
i=1;
sol=C();
if(i>n && sol)
{
printf("1\n");
continue;
}
printf("0\n");
}
return 0;
}