Pagini recente » Cod sursa (job #872811) | Cod sursa (job #1150196) | Cod sursa (job #1210580) | Cod sursa (job #401702) | Cod sursa (job #2152386)
#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int n, i, m, v[10002];
char ok = 1;
void checkB(), checkB1(), checkC(), checkB2();
void checkC(){
if(v[i] == 3){
checkB();
if(ok != 0){
i++;
checkC();
}
}
else
if(v[i] == 1){
if(!(v[i+1] == 2 && i+2<=n))
ok = 0;
}
}
void checkB1(){
if(v[i] != 2){
ok = 0;
return;
}
while(v[i] == 2)
i++;
if(i > n-5)
ok = 0;
else
checkB2();
}
void checkB2(){
if(v[i] == 1 && v[i+2] == 3 && i+4 <= n){
i+=4;
checkC();
}
else
ok = 0;
}
void checkB(){
checkB1();
if(ok == 0){
ok = 1;
checkB2();
}
}
int main(){
fin>>m;
while(m){
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
if(n == 1)
fout<<"1\n";
else{ /// inseamna ca nu pornesc de la A
i = 1;
checkB();
if(ok == 0)
ok = 1, checkC();
if(ok == 0)
fout<<"0\n";
else
fout<<"1\n";
}
m--;
}
return 0;
}