Pagini recente » Cod sursa (job #2216082) | Cod sursa (job #590440) | Cod sursa (job #2374067) | Cod sursa (job #1268752) | Cod sursa (job #1119094)
#include <fstream>
using namespace std;
ifstream f("perle.in");
ofstream g("perle.out");
int i,j,acum,lg,a[10005],n;
int tipB();
int tipC();
int tipB()
{
if (acum>lg) return 0;
int r=0;
if (a[acum]==2)
{
++acum;
r=tipB();
}
else
{
if (a[acum]==1 && a[acum+2]==3)
{
acum=acum+4;
r=tipC();
}
}
return r;
}
int tipC()
{
if (acum>lg) return 0;
if (a[acum]==2)
{
++acum;
return 1;
}
else if (a[acum]==3)
{
++acum;
if (tipB()) return tipC();
}
else if (a[acum]==1&&a[acum+1]==2&&acum+2<=lg)
{
acum=acum+3;
return 1;
}
return 0;
}
int main ()
{
f>>n;
for (i=1; i<=n; ++i)
{
f>>lg;
acum=1;
for (j=1; j<=lg; ++j) f>>a[j];
if (lg==1) g<<"1\n";
else if (a[1]==2 || (a[1]==1 && a[3]==3)) g<<tipB()<<"\n";
else g<<tipC()<<"\n";
}
return 0;
}