Pagini recente » Cod sursa (job #2784023) | Cod sursa (job #437608) | Cod sursa (job #2545257) | Istoria paginii runda/oni-2013-11-12/clasament | Cod sursa (job #404542)
Cod sursa(job #404542)
#include <stdio.h>
#define KMAX 10002
int n,k,A[KMAX],nrc;
int perla_b(int poz);
int perla_c(int poz);
int perla_a(int poz)
{
if (poz==k && !nrc)
return 1;
if (nrc)
{
nrc--;
return perla_c(poz+1);
}
return 0;
}
int perla_b(int poz)
{
if (A[poz]==2 && poz+1<=k)
return perla_b(poz+1);
if (A[poz]==1 && A[poz+2]==3 && poz+4<=k)
return perla_c(poz+4);
return 0;
}
int perla_c(int poz)
{
if (A[poz]==2 && poz==k && !nrc)
return 1;
if (A[poz]==2 && nrc)
{
nrc--;
return perla_c(poz+1);
}
if (A[poz]==1 && A[poz+1]==2 && poz+2<=k)
return perla_a(poz+2);
if (A[poz]==3)
{
nrc++;
return perla_b(poz+1);
}
return 0;
}
int main()
{
freopen("perle.in","r",stdin);
freopen("perle.out","w",stdout);
scanf("%d",&n);
int i;
for( int j = 1; j <= n; j++)
{
scanf("%d",&k);
nrc=0;
for (i=1; i<=k; i++)
scanf("%d",&A[i]);
if (perla_a(1))
{printf("1\n");continue;}
nrc=0;
if (perla_b(1))
{printf("1\n");continue;}
nrc=0;
if (perla_c(1))
{printf("1\n");continue;}
printf("0\n");
}
return 0;
}