Pagini recente » Cod sursa (job #1329554) | Cod sursa (job #170887) | Cod sursa (job #2389412) | Cod sursa (job #2046076) | Cod sursa (job #152428)
Cod sursa(job #152428)
#include <fstream.h>
#include <string.h>
#define MAX 10100
ifstream fin ("perle.in");
ofstream fout ("perle.out");
char a[MAX],sir[MAX];
int n,lg,ok;
void back(int k,char c)
{
if (k==lg && c=='N')
{
ok=1;
return ;
}
else
if (k>lg)
return;
if (ok==0)
{
switch (c)
{
case 'A':
{
back(k+1,'N');
break;
}
case 'B':
{
if (a[k]=='\x2')
{
// sir[k]='2';
back(k+1,'B');
// sir[k]=0;
}
else
if (a[k]=='\x1' && a[k+2]=='\x3')
{
// sir[k]='1';
// sir[k+1]=a[k+1];
// sir[k+2]=a[k+2];
// sir[k+3]==sir[k+3];
back(k+4,'C');
}
break;
}
case 'C':
{
if (a[k]=='\x2')
{
// sir[k]='2';
back(k+1,'N');
}
else
if (a[k]=='\x3')
{
back(k+1,'B');
back(k+1,'C');
}
else
if (a[k]=='\x1' && a[k+1]=='\x2')
{
back(k+3,'N');
}
break;
}
default :
{
int lol=0;
lol++;
break;
}
};
}
}
void citire()
{
fin>>n;
fin.getline (a,100);
for (int i=0;i<n;i++)
{
fin>>lg;
char ca;
a[0]=0;
for (int j=0;j<lg;j++)
{
fin>>ca;
a[j]=ca-'0';
}
ok=0;
back(0,'A');
if (ok==0)
back(0,'B');
if (ok==0)
back(0,'C');
fout<<ok<<"\n";
}
}
int main ()
{
citire();
return 0;
}