Pagini recente » Cod sursa (job #1971779) | Cod sursa (job #814269) | Istoria paginii template/lot-2017 | Cod sursa (job #2507628) | Cod sursa (job #2152334)
#include <bits/stdc++.h>
using namespace std;
ifstream in("perle.in");
ofstream out("perle.out");
const int DIM = 10010;
int arr[DIM];
int solveA(int p);
int solveB(int p);
int solveC(int p);
int solveA(int p) {
if (arr[p] == 0)
return 0;
return p;
}
int solveB(int p) {
if (arr[p] == 0)
return 0;
if (arr[p] == 2)
return solveB(p + 1);
if (arr[p] == 1 && arr[p + 2] == 3)
return solveC(p + 4);
return 0;
}
int solveC(int p) {
if (arr[p] == 0)
return 0;
if (arr[p] == 2)
return p;
if (arr[p] == 1 && arr[p + 1] == 2)
return solveA(p + 2);
int pos = solveB(p + 1);
if (pos == 0)
return 0;
else
return solveC(pos + 1);
return 0;
}
int main(void) {
int t;
in >> t;
while (t--) {
int n;
in >> n;
arr[n + 1] = arr[n + 2] = 0;
arr[n + 3] = arr[n + 4] = 0;
for (int i = 1; i <= n; ++i)
in >> arr[i];
if (solveA(1) == n || solveB(1) == n || solveC(1) == n)
out << "1\n";
else
out << "0\n";
}
return 0;
}