Pagini recente » Cod sursa (job #2664061) | Borderou de evaluare (job #1567470) | Cod sursa (job #1349597) | Borderou de evaluare (job #2095503) | Cod sursa (job #1362723)
#include <iostream>
#include <fstream>
using namespace std;
int N,a[10001],T,p;
void solve_b(int x);
void solve_c(int x);
void solve_b(int x){
if (a[x]==2){ p++; solve_b(p); }
else if (a[x]==1 && a[x+2]==3) { p+=4; solve_c(p); }
else p=0;
}
void solve_c(int x){
if (a[x]==2) p++;
if (a[x]==1 && a[x+1]==2) p+=3;
if (a[x]==3){ p++; solve_b(p); solve_c(p); }
}
int main(){
ifstream fin("perle.in");
ofstream fout("perle.out");
fin >> T;
int i;
while (T--){
fin >> N;
for (i=1; i<=N; i++) fin >> a[i];
if (N==1) { fout << "1\n"; continue; }
p=1; solve_b(1); if (p==N+1) { fout << "1\n"; continue; }
p=1; solve_c(1); if (p==N+1) { fout << "1\n"; continue; }
fout << "0\n";
}
return 0;
}