Pagini recente » Monitorul de evaluare | Cod sursa (job #2857890) | Cod sursa (job #1320914) | Cod sursa (job #1190990) | Cod sursa (job #2298459)
#include <cstdio>
using namespace std;
FILE* FIN=freopen("perle.in","r",stdin);
FILE* FOUT=freopen("perle.out","w",stdout);
int v[16384],n;
void cit()
{
int i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&v[i]);
}
void af(int k)
{
printf("%d\n",k);
}
/**
void b3(int &p)
{
p=-1;
}
void c1(int &p)
{
if(v[p+1]==2)
p+=3;
else
p=-1;
}
void c2(int &p)
{
p++;
}
void c3(int &p)
{
p++;
if(v[p]==1)
b1(p);
else if(v[p]==2)
b2(p);
else
b3(p);
if(p==-1)
return;
if(v[p]==1)
c1(p);
else if(v[p]==2)
c2(p);
else
c3(p);
}
void b1(int &p)
{
if(v[p+2]==3)
p+=4;
else
{
p=-1;
return;
}
if(v[p]==1)
c1(p);
else if(v[p]==2)
c2(p);
else
c3(p);
}
void b2(int &p)
{
p++;
if(v[p]==1)
b1(p);
else if(v[p]==2)
b2(p);
else
b3(p);
}
*/
void letter(int &p,char c)
{
if(c=='b')
{
if(v[p]==1)
{
if(v[p+2]==3)
p+=4;
else
{
p=-1;
return;
}
if(v[p]==1)
letter(p,'c');
else if(v[p]==2)
letter(p,'c');
else
letter(p,'c');
}
else if(v[p]==2)
{
p++;
if(v[p]==1)
letter(p,'b');
else if(v[p]==2)
letter(p,'b');
else
letter(p,'b');
}
else
p=-1;
}
else
{
if(v[p]==1)
{
if(v[p+1]==2)
p+=3;
else
p=-1;
}
else if(v[p]==2)
{
p++;
}
else
{
p++;
if(v[p]==1)
letter(p,'b');
else if(v[p]==2)
letter(p,'b');
else
letter(p,'b');
if(p==-1)
return;
if(v[p]==1)
letter(p,'c');
else if(v[p]==2)
letter(p,'c');
else
letter(p,'c');
}
}
}
void play()
{
int p=0;
cit();
if(n==1)
{
af(1);
return;
}
if(v[0]==1)
{
if(v[1]==2&&n==3)
{
af(1);
return;
}
letter(p,'b');
}
else if(v[0]==2)
letter(p,'b');
else
letter(p,'c');
if(p==n)
af(1);
else
af(0);
}
int main()
{
int i,k;
scanf("%d",&k);
for(i=0;i<k;i++)
play();
return 0;
}