Pagini recente » Cod sursa (job #3247410) | Cod sursa (job #670411) | Cod sursa (job #2909441) | Cod sursa (job #2293922) | Cod sursa (job #2534998)
#include <bits/stdc++.h>
using namespace std;
ifstream in("perle.in");
ofstream out("perle.out");
int n, v[10001], k, x;
bool g;
int A();
int B();
int C();
int A(){
if(x > n)
return false;
if(v[x] == 1 || v[x] == 2 || v[x] == 3){
x++;
return true;
}
return false;
}
int B(){
if(x > n)
return false;
if(v[x] == 2){
x++;
return B();
}
else
if(v[x]==1){
x++;
int k = A();
if(!k)
return false;
if(v[x] != 3)
return false;
x++;
k = A();
if(!k)
return false;
return C();
}
else return false;
}
int C(){
if(x > n)
return false;
if(v[x] == 2){
x++;
return true;
}
else
if(v[x] == 1){
x++;
if(v[x] != 2){
x++;
return false;
}
else{
x++;
return A();
}
}
else{
x++;
int k = B();
if(!k)
return false;
return C();
}
return false;
}
int main(){
in>>k;
for(int i = 1; i <= k; i++){
in>>n;
for(int j = 1; j <= n; j++)
in>>v[j];
x = 1;
g = false;
if(A() == true && x > n) g = true;
else x = 1;
if(B() == true && x > n && g == false) g = true;
else x = 1;
if(C() == true && x > n && g == false) g = true;
else x = 1;
out<<g<<"\n";
}
}