Pagini recente » Cod sursa (job #949559) | Cod sursa (job #15579) | osepix | Cod sursa (job #1084859) | Cod sursa (job #2335602)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("perle.in");
ofstream fout ("perle.out");
int n, k, i, j, ver, ok;
int v[10005];
int A(), B(), C();
int main(){
fin >> n;
for (i=1; i<=n; i++){
fin >> k;
ok = 0;
for (j=1; j<=k; j++){
fin >> v[j];
}
j = 1;
ver = A();
if (j == k + 1 && ver){
fout << "1\n";
ok = 1;
}
j = 1;
ver = B();
if (j == k + 1 && ver){
fout << "1\n";
ok = 1;
}
j = 1;
ver = C();
if (j == k + 1 && ver){
fout << "1\n";
ok = 1;
}
if (ok == 0){
fout << "0\n";
}
}
return 0;
}
int A(){
if (j == k + 1){
return 0;
}
if (v[j] == 1 || v[j] == 2 || v[j] == 3){
j++;
return 1;
}
return 0;
}
int B(){
if (j == k + 1){
return 0;
}
if (v[j] == 2){
j++;
return B();
}
else if (v[j] == 1){
j++;
if (!A() || v[j] != 3)
return 0;
j++;
if (!A())
return 0;
return C();
}
return 0;
}
int C(){
if (j == k + 1){
return 0;
}
if (v[j] == 2){
j++;
return 1;
}
else if (v[j] == 3){
j++;
if (!B())
return 0;
return C();
}
else if (v[j] == 1){
j++;
if (v[j] != 2){
j++;
return 0;
}
else{
j++;
A();
}
}
}