Pagini recente » Cod sursa (job #170298) | Cod sursa (job #21170) | Cod sursa (job #1405956) | Cod sursa (job #2972765) | Cod sursa (job #3196941)
#include <fstream>
using namespace std;
ifstream cin("perle.in");
ofstream cout("perle.out");
int i,n,t,A(),B(),C(),v[10001];
/// A - 1, 2, 3 B - 2B, 1A3AC C - 2, 3BC, 12A
int A(){
if(i==n+1)
return 0;
if(v[i]==1||v[i]==2||v[i]==3){
i++;
return 1;
}
return 0;
}
int B(){
if(i==n+1)
return 0;
if(v[i]==2){
i++;
return B();
}else if(v[i]==1){
i++;
int ok=A();
if(ok==0)
return 0;
if(v[i]==3){
i++;
ok=A();
if(ok)
return C();
return 0;
}
}
return 0;
}
int C(){
if(i==n+1)
return 0;
if(v[i]==2){
i++;
return 1;
}
if(v[i]==3){
i++;
int ok=B();
if(ok)
return C();
return 0;
}
if(v[i]==1){
i++;
if(v[i]==2){
i++;
return A();
}
}
return 0;
}
int main()
{
cin>>t;
while(t--){
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
i=1;
bool ok=0;
if(A()==1&&i==n+1)
ok=1;
i=1;
if(B()==1&&i==n+1)
ok=1;
i=1;
if(C()==1&&i==n+1)
ok=1;
cout<<ok<<'\n';
}
return 0;
}