Pagini recente » Cod sursa (job #3342837) | Cod sursa (job #3313609) | Cod sursa (job #3327414) | Cod sursa (job #3352774) | Cod sursa (job #3326692)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
const int MAXN=1e4;
const int INVALID=-1;
int v[MAXN+1];
int placeb(int idx);
int placec(int idx);
int placeb(int idx) {
if(v[idx]==2) { //2B
return placeb(idx+1);
} else if(v[idx]==1&&v[idx+2]==3) { //1A3AC
return placec(idx+4);
}
return INVALID;
}
int placec(int idx) {
if(v[idx]==2) { //2
return idx+1;
} else if(v[idx]==3) { //3BC
return placec(placeb(idx+1));
} else if(v[idx]==1&&v[idx+1]==2) { //12A
return idx+3;
}
return INVALID;
}
int main() {
int t,n;
fin>>t;
while(t--) {
fin>>n;
for(int i=1; i<=n; i++) {
fin>>v[i];
}
if(n>1) {
int pos1=placeb(1);
int pos2=placec(1);
fout<<((pos1==n+1)||(pos2==n+1))<<'\n';
} else {
fout<<"1\n";
}
}
return 0;
}