Pagini recente » Cod sursa (job #1006397) | Cod sursa (job #364861) | Cod sursa (job #2428203) | Cod sursa (job #2144459) | Cod sursa (job #978480)
Cod sursa(job #978480)
#include<stdio.h>
#define L 10003
int vect[L];
int B(int p);
int C(int p);
int B(int p) {
if (vect[p] == 2)
return B(p + 1);
if (vect[p] == 1 && vect[p + 2] == 3)
return C(p + 4);
return -1;
}
int C(int p) {
if (vect[p] == 2)
return p + 1;
if (vect[p] == 1 && vect[p + 1] == 2)
return p + 3;
if (vect[p] == 3)
return C(B(p + 1));
return -1;
}
int tryParse(int l) {
int result;
if (l == 1)
return 1;
result = B(0);
if (l == result)
return 1;
result = C(0);
if (l == result)
return 1;
return 0;
}
int main()
{
freopen("perle.in", "r", stdin);
freopen("perle.out", "w", stdout);
int teste;
int i, j, l;
scanf("%d", &teste);
for (i = 0; i < teste; i++) {
scanf("%d", &l);
for (j = 0; j < l; j++) {
scanf("%d", &vect[j]);
}
printf("%d\n", tryParse(l));
}
return 0;
}