Cod sursa(job #2693503)

Utilizator andrei_marciucMarciuc Andrei andrei_marciuc Data 6 ianuarie 2021 11:47:46
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <stdio.h>
int v[ 10002 ];

int B( int poz );
int C( int poz ){
    if( v[ poz ] == 2 )
        return poz + 1;
    if( v[ poz ] == 3 )
        return C( B( poz + 1 ) );
    if( v[ poz ] == 1 && v[ poz + 1 ] == 2 )
        return poz + 3;
    return -1;
}

int B( int poz ) {
    if( v[ poz ] == 2 )
        return B( poz + 1 );
    if( v[ poz ] == 1 && v[ poz + 2 ] == 3 )
        return C( poz + 4 );
    return -1;
}

int main()
{
    int q;
    FILE *fin = fopen( "perle.in", "r" );
    FILE *fout = fopen( "perle.out", "w" );
    fscanf( fin, "%d", &q );
    while( q-- ){
        int n;
        fscanf( fin, "%d", &n );
        for( int i = 0; i < n; i++ )
            fscanf( fin, "%d", &v[ i ] );
        if( n == 1 || B( 0 ) == n || C( 0 ) == n )
            fprintf( fout, "1\n" );
        else fprintf( fout, "0\n" );
    }
    fclose( fin );
    fclose( fout );
    return 0;
}