Pagini recente » Cod sursa (job #3303484) | Cod sursa (job #3304326) | Cod sursa (job #3298394) | Cod sursa (job #3319402) | Cod sursa (job #3331485)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("perle.in");
ofstream g("perle.out");
int t,n,pt,v[10100],ok;
bool A();
bool B();
bool C();
bool A() {
if(pt>n) {
return 0;
}
if(v[pt]==1||v[pt]==2||v[pt]==3) {
pt++;
return 1;
}
return 0;
}
bool B() {
if(pt>n) {
return 0;
}
if(v[pt]==2) {
pt++;
return B();
} else if(v[pt]==1) {
pt++;
bool ver=A();
if(ver==0||v[pt]!=3) {
return 0;
}
pt++;
ver=A();
if(ver==0) {
return 0;
}
return C();
}
return 0;
}
bool C() {
if(pt>n) {
return 0;
}
if(v[pt]==1) {
pt++;
if(v[pt]!=2) {
return 0;
}
pt++;
return A();
} else if(v[pt]==2) {
pt++;
return 1;
} else {
pt++;
bool ver=B();
if(ver==0) {
return 0;
}
return C();
}
}
int main() {
f>>t;
while(t--) {
f>>n;
for(int i=1; i<=n; i++) {
f>>v[i];
}
ok=0;
pt=1;
if(A()&&pt==n+1) {
ok=1;
}
pt=1;
if(B()&&pt==n+1) {
ok=1;
}
pt=1;
if(C()&&pt==n+1) {
ok=1;
}
g<<ok<<'\n';
}
f.close();
g.close();
return 0;
}