Pagini recente » Cod sursa (job #2378300) | Cod sursa (job #2207285) | Cod sursa (job #3177703) | Cod sursa (job #2820022) | Cod sursa (job #618478)
Cod sursa(job #618478)
#include <iostream>
#include <stdio.h>
using namespace std;
const int nmax = 10010;
int N, A[nmax];
int C(int ind);
int B(int ind)
{
if(ind > N + 1)
return ind;
if(A[ind] == 2)
return B(ind + 1);
if(A[ind] == 1 && A[ind + 2] == 3)
return C(ind + 4);
return N + 2;
}
int C(int ind)
{
if(A[ind] == 2)
return ind + 1;
if(A[ind] == 1 && A[ind + 1] == 2)
return ind + 3;
if(A[ind] == 3)
return C(B(ind + 1));
return N + 2;
}
int main()
{
freopen ("perle.in","r", stdin);
freopen ("perle.out", "w", stdout);
int Q, i, Rez;
scanf("%d", &Q);
while(Q--)
{
scanf("%d", &N);
for(i = 1; i <= N; i++)
scanf("%d", &A[i]);
if(N == 1)
Rez = 1;
else {
Rez = B(1);
if(Rez != N + 1)
Rez = C(1);
if(Rez == N + 1)
Rez = 1;
else Rez = 0;
}
printf("%d\n", Rez);
}
return 0;
}