Pagini recente » Cod sursa (job #1662450) | Cod sursa (job #2843477) | Cod sursa (job #2228532) | Cod sursa (job #1880995) | Cod sursa (job #20023)
Cod sursa(job #20023)
#include <stdio.h>
int n,l;
int a[10001];
int test_b(int i);
int test_c(int i);
int test_b(int i)
{
for (; i<l; i++)
if (a[i]!=2) break;
if (i==l) return 0;
if (l < i+5) return 0;
if (a[i]!=1 || a[i+2]!=3) return 0;
return test_c(i+4);
}
int test_c(int i)
{
if (a[i]==2) return i+1; // 2
if (a[i]==1) // 12A
{
if (l < i+3) return 0;
if (a[i+1]==2) return i+3;
}
i=test_b(i+1); // 3BC
if (i==l || i==0) return 0;
return test_c(i);
}
int test()
{
if (l==1) return 1;
if (a[0]==1)
{
if (l==3 && a[1]==2) return 1; // 12A
if (l>=5 && a[2]==3) return (test_c(4) == l); // 1A3AC
}
if (a[0]==2)
return (test_b(0)==l); // 2B
return(test_c(0)==l); // 3BC
}
int main()
{
int i,j;
freopen("perle.in","r",stdin);
freopen("perle.out","w",stdout);
scanf("%d",&n);
for (i=0;i<n;i++)
{
scanf("%d", &l);
for (j=0;j<l;j++)
scanf("%d", &a[j]);
printf("%d\n", test());
}
return 0;
}