Cod sursa(job #2371151)
Utilizator | Rosca Rares Raresr14 | Data | 6 martie 2019 16:15:00 |
---|---|---|---|
Problema | Perle | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 1.35 kb |
#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int t,n,k,v[10010],A(),B(),C(),i,verif;
int A(){
if(v[k]==1||v[k]==2||v[k]==3){
k++;
return 1;
}
return 0;
}
int B(){
if(v[k]==2){
k++;
return B();
}
if(v[k]==1){
k++;
if(A()){
if(v[k]==3){
k++;
if(A()){
return C();
}
}
}
}
return 0;
}
int C(){
if(v[k]==2){
k++;
return 1;
}
if(v[k]==3){
k++;
if(B()){
if(C()){
return 1;
}
}
}
if(v[k]==1&&v[k+1]==2){
k+=2;
if(A()){
return 1;
}
}
return 0;
}
int main(){
fin>>t;
for(;t--;){
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
k=1;
verif=A();
if(verif&&k==n+1){
fout<<"1\n";
continue;
}
k=1;
verif=B();
if(verif&&k==n+1){
fout<<"1\n";
continue;
}
k=1;
verif=C();
if(verif&&k==n+1){
fout<<"1\n";
continue;
}
fout<<"0\n";
}
return 0;
}