Cod sursa(job #2661129)

Utilizator SergiuS3003Sergiu Stancu Nicolae SergiuS3003 Data 21 octombrie 2020 13:30:22
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include <fstream>
#define nl '\n'
using namespace std;
ifstream f ( "perle.in" );
ofstream g ( "perle.out" );
const int NMAX = 10002;
int v[NMAX], n;

int rezC ( int i );
int rezB ( int i )
{
    if ( i > n )
        return -1;

    if ( v[i] == 2 )
        return rezB ( i + 1 );

    if ( v[i] == 1 && v[i + 2] == 3 )
        return rezC ( i + 4 );

    return -1;
}
int rezC ( int i )
{
    if ( i > n )
        return -1;

    if ( v[i] == 2 )
        return i;

    if ( v[i] == 1 && v[i + 1] == 2 )
        return i + 2;

    if ( v[i] == 3 )
        return rezC ( rezB ( i + 1 ) + 1 );

    return -1;
}

int main()
{
    int T;
    f >> T;

    while ( T-- )
    {
        f >> n;

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

        if ( n == 1 || rezB ( 1 ) == n || rezC ( 1 ) == n )
        {
            g << 1 << nl;
            continue;
        }
        else g << 0 << nl;
    }

    return 0;
}