Cod sursa(job #1086653)

Utilizator chiscanuChiscu Razvan chiscanu Data 18 ianuarie 2014 13:55:46
Problema Episoade Scor 50
Compilator cpp Status done
Runda game01 Marime 1.62 kb
#include<cstdio>
#include<cstring>

using namespace std;

int kk, ii, jj, ok, h, k, p, n, t, i, nr, nn, x, j, a[111][111], 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;
}