Pagini recente » Cod sursa (job #1394746) | Cod sursa (job #3180413) | Clasament leulgreu | Cod sursa (job #1256719) | Cod sursa (job #256897)
Cod sursa(job #256897)
#include<stdio.h>
int a[10001];
int n,t;
int b (int i);
int c (int i);
int solve ();
int main()
{
freopen ("perle.in","r",stdin);
freopen ("perle.out","w",stdout);
int i,j;
scanf("%d",&t);
for(i=1; i<=t; ++i)
{
scanf("%d",&n);
for(j=1; j<=n; ++j)
scanf("%d",&a[j]);
printf("%d\n",solve());
}
return 0;
}
int solve()
{
if(n==1)
return 1;
if(n==2)
return 0;
if(a[1]==3)
return c(1);
return b(1);
}
int b(int i)
{
if(a[i]==2)
return b(i+1);
if(a[i]==1 && a[i+2]==3)
return c(i+4);
return c(i+1);
}
int c(int i)
{
if(a[i]==2)
{
if(i==n)
return 1;
return c(i+1);
}
if(a[i]==1 && a[i+1]==2)
{
if(i+2==n)
return 1;
return c(i+3);
}
if(a[i]==3)
return b(i+1);
return 0;
}