Cod sursa(job #2985033)
Utilizator | Dumitrascu Constantin Alexandru alex_dac | Data | 25 februarie 2023 15:48:48 |
---|---|---|---|
Problema | Perle | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 1.26 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream in("dir.in");
ofstream out("perle.out");
int i,n,t,v[10005];
bool A(),B(),C();
bool A(){
if(i>n)
return 0;
i++;
return 1;
}
bool B(){
if(i>n)
return 0;
if(v[i]==3){
i++;
return 0;
}
if(v[i]==2){
i++;
return B();
}
if(v[i]==1 && v[i+2]==3){
i++;
if(!A())
return 0;
i++;
return A() && C();
}
return 0;
}
bool C(){
if(i>n)
return 0;
if(v[i]==2){
i++;
return 1;
}
if(v[i]==1){
if(v[i+1]==2){
i=i+2;
return A();
}
return 0;
}
i++;
return B()&&C();
}
int main(){
int T;
in>>T;
for(int j=1;j<=T;j++){
in>>n;
for(int i=1;i<=n;i++)
in>>v[i];
i=1;
if(A() && i>n){
cout<<"1\n";
continue;
}
i=1;
if(B() and i>n){
cout<<"1\n";
continue;
}
i=1;
if(C() and i>n){
cout<<"1\n";
continue;
}
cout<<"0\n";
}
}