Cod sursa(job #2285295)

Utilizator Andrei2000Andrei Mihailescu Andrei2000 Data 18 noiembrie 2018 13:58:11
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
#define nmax 10003
using namespace std;

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

int n,k,v[nmax];

int c(int q);

int b(int q){
    if(v[q]==2)return b(q+1);
    else if(v[q]==1)
        return c(q+4);
    else return 0;
}

int c(int q){
    int w;
    if(v[q]==1 && v[q+1]==2)return q+2;
    else if(v[q]==2)return q;
    else if(v[q]==3 && (w=b(q+1))) return c(w+1);
    else return 0;
}

int main()
{
    fin>>n;
    while(n--){
        fin>>k;
        for(int i=1;i<=k;++i)fin>>v[i];
        if(k==1 || k==3 && v[1]==1 && v[2]==2)
            fout<<1<<'\n';
        else{
            if((v[1]==1||v[1]==2) && b(1)==k)fout<<1<<'\n';
            else if(v[1]==3 && c(1)==k)fout<<1<<'\n';
            else fout<<0<<'\n';
        }
    }
    return 0;
}