Cod sursa(job #2156399)

Utilizator AndreiG23Ghiurcuta Andrei AndreiG23 Data 8 martie 2018 18:22:19
Problema Perle Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int n,t,i,v[10005];
int B(int i);int C(int i);

int B(int i)
{
    if(v[i]==2&&i+1<=n)return B(i+1);
    if(i+4<=n&&v[i]==1&&v[i+2]==3)return C(i+4);

    return -1;
}
int C(int i)
{
    if(i+2<=n&&v[i]==3)return C((B(i+1)));
    if(i+2<=n&&v[i]==1&&v[i+1]==2)return i+3;
    if(i+1<=n&&v[i]==2)return i+1;
        return -1;
}
int main()
{
 fin>>t;
 for(int j=1;j<=t;j++)
 {
     fin>>n;
     for(int k=1;k<=n;k++)
        fin>>v[k];
    if(n==0){fout<<"0"<<endl;continue;}
    if(n==1){fout<<"1"<<endl;continue;}
    if(B(1)==n+1||C(1)==n+1){fout<<"1"<<endl;continue;}
    else {fout<<"0"<<endl;continue;}

 }

}