Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #2016147)
#include <fstream>
#define DIM 10005
using namespace std;
ifstream fi("perle.in");
ofstream fo("perle.out");
int n,l;
int s[DIM];
int poz;
int bagac(int &poz);
int bagab(int &poz)
{
if(s[poz]==2)
{
poz++;
return bagab(poz);
}
else if(s[poz]==1)
{
if(s[poz+2]==3)
{
poz+=4;
return bagac(poz);
}
}
return 0;
}
int bagac(int &poz)
{
if(s[poz]==2)
{
poz++;
return 1;
}
else if(s[poz]==3)
{
poz++;
if(bagab(poz))
return bagab(poz);
}
else if(s[poz]==1 && s[poz+1]==2)
{
poz+=3;
return 1;
}
return 0;
}
int main()
{
fi>>n;
for(int i=1;i<=n;i++)
{
fi>>l;
for(int j=1;j<=l;j++)
fi>>s[j];
if(l==1)
fo<<1<<"\n";
else
{
poz=1;
if(bagab(poz)&&poz==l+1)
fo<<1<<"\n";
else
{
poz=1;
if(bagac(poz)&&poz==l+1)
fo<<1<<"\n";
else
fo<<0<<"\n";
}
}
}
fi.close();
fo.close();
return 0;
}