Cod sursa(job #1752451)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 3 septembrie 2016 23:25:47
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>
using namespace std;

ifstream in ( "perle.in"  );
ofstream out( "perle.out" );

const int DIM = 1e5 + 5;
const int INF = 1e9 + 7;

int t, n, v[DIM];

inline int putB( int k );
inline int putC( int k );

inline int putB( int k ) {
    if( v[k] == 2 )
        return putB( k + 1 );
    if( v[k] == 1 && v[k + 2] == 3 )
        return putC( k + 4 );
    return -1;
}

inline int putC( int k ) {
    if( v[k] == 2 )
        return k + 1;
    if( v[k] == 1 && v[k + 1] == 2 )
        return k + 3;
    if( v[k] == 3 )
        return putC( putB( k + 1 ) );
    return -1;
}

int main( int argc, const char *argv[] ) {

    in >> t;
    for( int i = 1; i <= t; i ++ ) {
        in >> n;

        for( int i = 1; i <= n; i ++ )
            in >> v[i];

        if( n == 1 || putB(1) == n + 1 || putC(1) == n + 1 )
            out << 1 << endl;
        else
            out << 0 << endl;
    }

    return 0;
}