Pagini recente » Cod sursa (job #1513108) | Cod sursa (job #816550) | Cod sursa (job #1921397) | Cod sursa (job #509734) | Cod sursa (job #1115855)
#include <fstream>
#include <string>
#include <cstring>
#define max(a, b), (a>b)? a:b
using namespace std ;
const int NMAX = 10005 ;
ifstream cin("perle.in") ;
ofstream cout("perle.out") ;
int T, N;
int S[NMAX] ;
int i;
int C() ;
int B()
{
if(i > N) return 0 ;
if(S[i] == 2)
{
++ i ;
return B();
}
if(S[i] == 1 && S[i + 2] == 3)
{
i = i + 4 ;
return C() ;
}
return 0 ;
}
int C()
{
if(i > N) return 0 ;
if(S[i] == 2)
{
++ i ;
return 1 ;
}
if(S[i] == 3)
{
++ i;
if(B()) return C() ;
}
if(S[i] == 1 && S[i + 1] == 2 && i + 2 <= N)
{
i = i + 3 ;
return 1 ;
}
return 0 ;
}
int main()
{
cin >> T ;
while(T)
{
cin >> N ;
for( i = 1 ; i <= N ; ++ i)
cin >> S[i] ;
i = 1 ;
if(N == 1)
{
cout << 1 << '\n' ;
//return 0 ;
}
else if(S[1] == 2 || ( S[1] == 1 && S[3] == 3 && N>=5 )) cout << B() << '\n' ;
else cout << C() << '\n' ;
-- T;
}
cin.close();
cout.close();
return 0;