Cod sursa(job #2214977)

Utilizator GiihuoTihufiNeacsu Stefan GiihuoTihufi Data 20 iunie 2018 17:17:39
Problema Perle Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("perle.in");
ofstream g("perle.out");

int applyB(int p,vector<int> V);
int applyC(int p,vector<int> V);

int applyB(int p,vector<int> V)
{
    if(V[p]==1 && V[p+2]==3) return applyC(p+4,V);
    if(V[p]==2) return applyB(p+1,V);
    return 0;
}

int applyC(int p,vector<int> V)
{
    if(V[p]==2) return p+1;
    if(V[p]==3) return applyC(applyB(p+1,V),V);
    if(V[p]==1 && V[p+1]==2) return p+3;
    return 0;
}

int main()
{
    int N;
    f>>N;
    for(;N--;)
    {
        int M;
        f>>M;
        vector<int> V(M);
        for(auto &i:V) f>>i;
        g<<(M==1 || applyB(0,V)==M || applyC(0,V)==M)<<'\n';
    }
    return 0;
}