Pagini recente » Cod sursa (job #1057940) | Profil EdgeLordXD | Cod sursa (job #874080) | Cod sursa (job #1774043) | Cod sursa (job #1236740)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("perle.in");
ofstream g ("perle.out");
int n, l;
int s[10003];
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;
}