Cod sursa(job #253758)

Utilizator ioraIoana Radu iora Data 6 februarie 2009 12:12:14
Problema Episoade Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 1 Marime 1.13 kb
#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",&n,&t);
          
	  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;
}