Cod sursa(job #1753392)

Utilizator tifui.alexandruTifui Ioan Alexandru tifui.alexandru Data 6 septembrie 2016 14:26:03
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>

using namespace std;

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

int v[10005],n;
int placeb(int p);
int placec(int p);

int main() {
    int i,t;

    fin>>t;
    while(t--) {
        fin>>n;
        for(i=1;i<=n;++i) fin>>v[i];

        if(n==1||placeb(1)==n+1||placec(1)==n+1) fout<<"1\n";
        else fout<<"0\n";
    }

    return 0;
}

int placeb(int p) {
    if(p+1<=n&&v[p]==2) return placeb(p+1);
    if(p+4<=n&&v[p]==1&&v[p+2]==3) return placec(p+4);

    return n+2;
}

int placec(int p) {
    if(p+2<=n) {
        if(v[p]==3) return placec(placeb(p+1));
        if(v[p]==1&&v[p+1]==2) return p+3;
    }
    if(p<=n&&v[p]==2) return p+1;

    return n+2;
}