Pagini recente » Cod sursa (job #1896961) | Cod sursa (job #71831) | Cod sursa (job #2793154) | Cod sursa (job #347945) | Cod sursa (job #457003)
Cod sursa(job #457003)
#include <cstdio>
#define lmax 10010
int v[lmax], n, l;
int solve_C(int);
int solve_B(int p)
{
if (p>l) return 0;
if (v[p]==2 && p<l) return solve_B(p+1);
if (v[p]==1 && v[p+2]==3 && p+3<l) return solve_C(p+4);
return 0;
}
int solve_C(int p)
{
int k;
if (v[p]==2) return p+1;
if (v[p]==3)
{
k=solve_B(p+1);
if (k) return solve_C(k);
return 0;
}
if (p+1<l && v[p]==1 && v[p+1]==2) return p+3;
}
int solve()
{
if (l==1) return 1;
if (solve_B(1)>l) return 1;
if (solve_C(1)>l) return 1;
return 0;
}
int main()
{
freopen("perle.in","r",stdin);
freopen("perle.out","w",stdout);
scanf("%d",&n);
int i;
while (n--)
{
scanf("%d",&l);
for (i=1; i<=l; i++) scanf("%d",&v[i]);
printf("%d\n",solve());
}
}