Cod sursa(job #288355)
Utilizator | Data | 25 martie 2009 18:59:10 | |
---|---|---|---|
Problema | Perle | Scor | 100 |
Compilator | cpp | Status | done |
Runda | aa | Marime | 2.13 kb |
#include <fstream>
using namespace std;
int main()
{
int n,np,v,i;
char st[10002],vf=0;
ifstream fin("perle.in");
ofstream fout("perle.out");
fin>>n;
for(i=1;i<=n;i++)
{
fin>>np;
if(np==1) {fin>>v;fout<<"1"<<"\n";}
else
{
fin>>v;//prima perla
if(v==3)st[vf=1]='C';
else if(v==2)st[vf=1]='B';
else if(v==1&&np==3) st[vf=1]='C';
else st[vf=1]='B';
int j,ok=1;
for(j=1;j<=np;j++)
{
if(ok)
{
if(st[vf]=='A')st[vf]=v+'0';
else if(st[vf]=='B')
if(v==2) st[++vf]='2';
else if(v==1) {st[vf]='C';
st[++vf]='A';
st[++vf]='3';
st[++vf]='A';
st[++vf]='1';
}
else ok=0;
else if(st[vf]=='C')
if(v==2) st[vf]='2';
else if(v==3) {st[++vf]='B';
st[++vf]='3';
}
else if(v==1)
{
st[vf]='A';
st[++vf]='2';
st[++vf]='1';
}
if(ok)
if(st[vf]-'0'==v) vf--;
else ok=0;
}
if(j<np) fin>>v;
}
if(ok&&vf==0) fout<<"1\n";
else fout<<"0\n";
}
}
fout.close();
return 0;
}