Pagini recente » Cod sursa (job #1812787) | Cod sursa (job #2856373) | Cod sursa (job #820987) | Cod sursa (job #2053465) | Cod sursa (job #700950)
Cod sursa(job #700950)
#include <fstream>
#define L 10010
#include <cstring>
using namespace std;
ifstream f("perle.in");
ofstream g("perle.out");
int T,n,v[L],i;
int PerlaB(int x);
int PerlaC(int x);
int main() {
f >> T;
for (;T;--T) {
memset(v,0,sizeof(v));
f >> n;
for (i=1;i<=n;i++) f >> v[i];
if (n==1 || (n>2 && (PerlaB(1)>=n || PerlaC(1)>=n))) g << 1 << '\n';
else g << 0 << '\n';
}
f.close();g.close();
return 0;
}
int PerlaB(int x) {
if (x>n) return 0;
if (v[x]==2) return PerlaB(x+1);
if (x+3<n && v[x]==1 && v[x+2]==3) return PerlaC(x+4);
return 0;
}
int PerlaC(int x) {
if (v[x]==2) return x+1;
if (x+1<n && v[x]==1 && v[x+1]==2) return x+3;
if (v[x]!=3) return 0;
x=PerlaB(x+1);
if (x==0) return 0;
return PerlaC(x);
}