Pagini recente » Cod sursa (job #757511) | Cod sursa (job #2622390) | Cod sursa (job #2815274) | Cod sursa (job #1379961) | Cod sursa (job #1106452)
#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);
if (x) 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 j = 1; j <= l; j++) f >> s[j];
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;
}