Cod sursa(job #2112329)

Utilizator 3DwArDPauliuc Edward 3DwArD Data 23 ianuarie 2018 12:49:53
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("perle.in");
ofstream g("perle.out");
int v[10003];
int rec(int n, int poz, int caracter){
    if(poz>n)return n+1;
    if(caracter==-1)
        return poz;
    if(caracter==-2){
        if(v[poz]==2)
            return rec(n,poz+1,-2);
        else
            {
                if(poz<=n-4&&v[poz]==1&&v[poz+2]==3)
                return rec(n,poz+4,-3);
                return n+1;
            }
    }
    if(caracter==-3){
        if(v[poz]==2)return poz;
        if(v[poz]==3)return max(rec(n,poz+1,-2),rec(n,poz+2,-3));
        if(v[poz]==1)if((poz<=n-2)&&(v[poz+1]==2))return poz+2;
        return n+1;
    }
    return n+1;
}
void rez(){
    int n;
    f>>n;
    for(int i=1;i<=n;i++)f>>v[i];
    if(rec(n,1,-1)==n||rec(n,1,-2)==n||rec(n,1,-3)==n)g<<1<<"\n";
    else g<<0<<"\n";
}
int main()
{
    int n;
    f>>n;
    for(int i=1;i<=n;i++){
        rez();
    }
    return 0;
}