Pagini recente » Diferente pentru preoni-2008/runda-1/solutii intre reviziile 12 si 33 | Cod sursa (job #1034268) | Cod sursa (job #1182964) | Cod sursa (job #604064) | Cod sursa (job #253764)
Cod sursa(job #253764)
#include<stdio.h>
#include<string.h>
int kk,ii,jj,ok,h,k,p,n,t,i,nr,nn,x,j,a[100][100],v[1000];
char uc,s[1000];
int main()
{
freopen("episoade.in","r",stdin);
freopen("episoade.out","w",stdout);
scanf("%s\n",&s);
scanf("%d%d",&t,&n);
nr=strlen(s);
nn=1;
do
{
if(s[i]>=48&&s[i]<=57)
{
x++;
while((s[i]>=48&&s[i]<=57))
{
a[nn][x]=a[nn][x]*10+(s[i]-48);
i++;
}
a[nn][0]=x;
}
if(s[i]=='#') { nn++;x=0;};
if((s[i]=='>'&&s[i+1]=='(')) { nn++;x=0;} ;
i++;
}while(i<nr);
for(k=1;k<=t;++k)
{
ok=1;
for(i=1;i<=n;++i)
scanf("%d",&v[i]);
i=0;
do
{
i++;
kk=0;
for(j=1;j<=nn&&ok==1;++j)
{
x=a[j][0];
for(h=1;h<=x;h++)
if(a[j][h]==v[i])
{
for(p=1;p<=x;++p)
if(a[j][p]!=v[i+p-1]) {ok=0; break;}
kk=1;
break;
}
if(kk)break;
}
i=i+x-1;
}while(i<n&&ok);
printf("%d\n",ok);
}
return 0;
}