Pagini recente » Cod sursa (job #2328285) | Cod sursa (job #1286200) | Cod sursa (job #1144948) | Cod sursa (job #2951709) | Cod sursa (job #2359120)
#include <fstream>
using namespace std;
ifstream f("perle.in");
ofstream g("perle.out");
int v[10001],i,j,m,k,n,poz;
char x,st[10001];
int perle(){
while(k>0){
x=st[k];
k--;
if(x=='B'){
if(v[poz]==3)
return 0;
else
if(v[poz]==2){
st[++k]='B';
poz++;
if(poz>m-1)
return 0;
}
else{
if(v[poz+2]==3){
st[++k]='C';
poz+=4;
if(poz>m)
return 0;
}
else
return 0;
}
}
else if(x=='C'){
if(v[poz]==1){
if(v[poz+1]==2)
poz+=3;
if(poz>=m&&k!=0)
return 0;
}
else if(v[poz]==2){
poz++;
if(k==0&&poz<=m)
return 0;
}
else{
st[++k]='C';
st[++k]='B';
poz++;
if(poz>=m-4)
return 0;
}
}
}
if(poz<=m)
return 0;
return 1;
}
int main()
{ f>>n;
for(i=1;i<=n;i++){
f>>m;
for(j=1;j<=m;j++)
f>>v[j];
if(m==1){
g<<1<<'\n';
continue;
}
k=0;
st[++k]='B';
poz=1;
if(perle()==1){
g<<1<<'\n';
continue;
}
k=0;
poz=1;
st[++k]='C';
g<<perle()<<'\n';
}
return 0;
}