Cod sursa(job #2324711)

Utilizator denmirceaBrasoveanu Mircea denmircea Data 21 ianuarie 2019 13:11:28
Problema Perle Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int perle[10200],t,n,i;
   ///     A -> 1 | 2 | 3
  ///      B -> 2B | 1A3AC
 ///       C -> 2 | 3BC | 12A
 int b(int poz),c(int poz);
int b(int poz){
    if(perle[poz]==2){
        return b(poz+1);
    }
    if(perle[poz]==1&&perle[poz+2]==3)
        return c(poz+4);
    return 0;
}
int c(int poz){
        if(perle[poz]==2)
            return poz+1;
        if(perle[poz]==3)
            return c(b(poz+1));   /// 3,b......b,c
        if(perle[poz]==1&&perle[poz+1]==2)
            return poz+3;
        return 0;
}
int main()
{
    fin>>t;
  for(;t;t--){
    memset(perle,0,sizeof(perle));
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>perle[i];
    if(n==1||b(1)==n+1||c(1)==n+1)
        fout<<"1\n";
    else fout<<"0\n";
  }


}