Cod sursa(job #1555685)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 23 decembrie 2015 13:51:14
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<cstdio>
using namespace std;
int n,v[10010];
int checkb(int i);
int checkc(int i);
int checkb(int i){
    if(i+1<=n)
        if(v[i]==2)
            return checkb(i+1);
    if(i+4<=n)
        if(v[i]==1&&v[i+2]==3)
            return checkc(i+4);
    return n+2;
}
int checkc(int i){
    if(i+2<=n)
        if(v[i]==3)
            return checkc(checkb(i+1));
    if(i+2<=n)
        if(v[i]==1&&v[i+1]==2)
            return i+3;
    if(i<=n)
        if(v[i]==2)
            return i+1;
    return n+2;
}
int main(){
    freopen("perle.in","r",stdin);
    freopen("perle.out","w",stdout);
    int t,q,i;
    scanf("%d",&t);
    for(q=1;q<=t;q++){
        scanf("%d",&n);
        for(i=1;i<=n;i++)
            scanf("%d",&v[i]);
        if(n==1||checkb(1)==n+1||checkc(1)==n+1)
            printf("1\n");
        else
            printf("0\n");
    }
    return 0;
}