Pagini recente » Cod sursa (job #2732729) | Cod sursa (job #3289183) | Cod sursa (job #2231774) | Cod sursa (job #3282070) | Cod sursa (job #192008)
Cod sursa(job #192008)
#include <stdio.h>
int v[10002];
int rezolvaB(int);
int rezolvaC(int);
int rezolvaB(int in)
{
if (v[in]==2) return rezolvaB(in+1);
if (v[in]==1 && v[in+2]==3) return rezolvaC(in+4);
return rezolvaC(in+1);
}
int rezolvaC(int in)
{
if (v[in]==2)
{
if (in==v[0]) return 1;
return rezolvaC(in+1);
}
if (v[in]==1 && v[in+1]==2)
{
if (in+2==v[0]) return 1;
return rezolvaC(in+3);
}
if (v[in]==3) return rezolvaB(in+1);
return 0;
}
int rezolva()
{
if (v[0]==1) return 1;
else if (v[0]==2) return 2;
if (v[1]==3) return rezolvaC(1);
return rezolvaB(1);
}
int main()
{
freopen("perle.in", "rt", stdin);
freopen("perle.out", "wt", stdout);
int n, i, j;
scanf("%d\n", &n);
for (i=0; i<n; i++)
{
scanf("%d ", &v[0]);
for (j=1; j<=v[0]; j++) scanf("%d ", &v[j]);
printf("%d\n", rezolva());
scanf("\n");
}
return 0;
}