Pagini recente » Cod sursa (job #1214512) | Cod sursa (job #192246) | Cod sursa (job #407817) | Cod sursa (job #328985) | Cod sursa (job #253693)
Cod sursa(job #253693)
#include<stdio.h>
#define N 101
char s[N],a[N];
int n,t,v[N],k;
struct milk{int x,y;}nr[N*N*N];
void relatii()
{
for (int i=0; s[i]; ++i)
{
if (s[i]>='0'&&s[i]<='9'&&s[i+1]&&s[i+1]=='>')
{
v[s[i]-'0']=1;
for (int j=1; j<=n; ++j)
if (!v[j])
{
nr[++k].x=s[i]-'0';
nr[k].y=j;
}
}
else
if (s[i]>='0'&&s[i]<='9'&&s[i+1]&&s[i+1]=='#')
{
int l=0,aux[N];
v[s[i]-'0']=1;
++i;
while (s[i]&&s[i]!='>')
{
if (s[i]>='0'&&s[i]<='9')
{
aux[++l]=s[i]-'0';
v[s[i]-'0']=2;
}
++i;
}
for (int j=1; j<=l; ++j)
{
for (int h=1; h<=n; ++h)
if (!v[h])
{
nr[++k].x=aux[j];
nr[k].y=h;
}
}
}
}
}
bool sir()
{
int ok=0;
for (int i=0; a[i+1]; i+=2)
{
for (int j=1; j<=k ;++j)
{
if (a[i]-'0'==nr[j].x)
if (a[i+2]-'0'<nr[j].y)
return false;
else
if (a[i+2]-'0'==nr[j].y)
{
ok=1;
break;
}
}
}
return true;
}
void citire()
{
freopen("episoade.in","r",stdin);
freopen("episoade.out","w",stdout);
gets(s);
//printf("%s ",s);
scanf("%d%d\n",&t,&n);
relatii();
/*for (int i=1; i<=k; ++i)
printf("%d %d",nr[i].x,nr[i].y);*/
//printf("%d %d",t,n);
for (int i=1; i<=t; ++i)
{
gets(a);
if (sir())
printf("1\n");
else
printf("0\n");
}
}
int main()
{
citire();
return 0;
}