Cod sursa(job #1086682)

Utilizator grigfirstPoLaMa-Popescu-Lazar-Matei grigfirst Data 18 ianuarie 2014 14:18:25
Problema Episoade Scor 50
Compilator cpp Status done
Runda game01 Marime 1.29 kb
#include<cstdio>
#include<cstring>
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;
}