Pagini recente » Cod sursa (job #523862) | Istoria paginii runda/3423523451/clasament | Cod sursa (job #1260126) | Cod sursa (job #887081) | Cod sursa (job #2324711)
#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";
}
}