Pagini recente » Cod sursa (job #2621891) | Cod sursa (job #1523488) | Cod sursa (job #394829) | Cod sursa (job #2583642) | Cod sursa (job #1106444)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("perle.in");
ofstream g ("perle.out");
int n, l;
const int NMAX = 10000;
int s[NMAX + 3];
int B (int i);
int C (int i);
int B (int i) {
if (i > l) return 0;
if (s[i] == 2) return B (i + 1);
if (s[i] == 1 && s[i + 2] == 3) return C (i + 4);
}
int C (int i) {
if (i > l) return 0;
if (s[i] == 2) return i;
if (s[i] == 3) {
int x = B (i + 1);
return C (x + 1);
}
else if (s[i] == 1 && s[i + 1] == 2) return i + 2;
}
void rezolva () {
f >> n;
for (int i = 1; i <= n; i++) {
f >> l;
for (int i = 1; i <= l; i++) f >> s[i];
if (l == 1) g << "1\n";
else if (B (1) == l || C (1) == l) g <<"1\n";
else g << "0\n";
}
}
int main () {
rezolva ();
return 0;
}