Pagini recente » Cod sursa (job #2860900) | Cod sursa (job #3187948) | Cod sursa (job #2175128) | Cod sursa (job #295988) | Cod sursa (job #67050)
Cod sursa(job #67050)
#include <stdio.h>
const int N = 10000;
int n, pz;
int a[N];
bool fail, fa, fb, fc;
void perlaa();
void perlab();
void perlac();
void perlaa() {
++pz; if (pz > n) { fail = true; return; }
}
void perlab() {
if (pz + 1 < n && a[pz] == 2) {
++pz;
perlab(); if (fail) return;
} else
if (pz + 4 < n && a[pz] == 1 && a[pz+2] == 3) {
pz += 4;
perlac(); if (fail) return;
} else {
fail = true;
return;
}
}
void perlac() {
if (pz + 3 <= n && a[pz] == 1 && a[pz+1] == 2) {
pz += 3;
} else
if (pz + 1 <= n && a[pz] == 2) {
++pz;
} else
if (pz + 1 < n && a[pz] == 3) {
++pz;
perlab(); if (fail) return; if (pz >= n) { fail = true; return; }
perlac(); if (fail) return; if (pz > n) { fail = true; return; }
}
}
int main() {
freopen("perle.in","rt",stdin);
freopen("perle.out","wt",stdout);
int m;
scanf("%d",&m);
for (int k = 0; k<m; ++k) {
scanf("%d",&n);
for (int i = 0; i<n; ++i) scanf("%d",&a[i]);
fail = false; pz = 0;
perlaa();
if (pz == n) fa = fail; else fa = true;
fail = false; pz = 0;
perlab();
if (pz == n) fb = fail; else fb = true;
fail = false; pz = 0;
perlac();
if (pz == n) fc = fail; else fc = true;
printf("%d\n",(fa && fb && fc) ? 0 : 1);
}
return 0;
}