Cod sursa(job #1513884)

Utilizator seby5381Marinescu Sebastian seby5381 Data 30 octombrie 2015 10:00:45
Problema Trie Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.61 kb
#include<cstdio>
#include<cstring>
int u,q,mx,i,j,k,op,n,l;
char a[100000][25],s[30];
int main()
{
    freopen("trie.in","r",stdin);
    freopen("trie.out","w",stdout);
    n=1;
    while(!feof(stdin))
    {
        scanf("%d ",&op);
        if(op!=0&&op!=1&&op!=2&&op!=3) break;
        gets(s+1);
        scanf("\n");
        if(op==0)
        {
            q=strlen(s+1);
            for(j=1;j<=q;j++)
                a[n][j]=s[j];
            n++;
        }
        else if(op==1)
        {
            for(i=1;i<=n;i++)
                if(strcmp(a[i],s)==0)
                {
                    strcpy(a[i]," ");
                    break;
                }
        }
        if(op==2)
        {
            k=0;
            for(i=1;i<=n;i++)
            {
                u=1;
                if(strlen(a[i]+1)==strlen(s+1))
                {
                    for(j=1;j<=strlen(a[i]+1);j++)
                        if(a[i][j]!=s[j])
                        {
                            u=0;
                            break;
                        }
                    if(u==1) k++;
                }

            }
            printf("%d\n",k);
        }
        else if(op==3)
        {
            mx=-1;
            for(i=1;i<=n;i++)
            {
                l=strlen(a[i]+1);
                k=0;
                j=1;
                while(a[i][j]==s[j])
                {
                    j++;
                    k++;
                }
                if(mx<k) mx=k;
            }
            printf("%d\n",mx);
        }
    }
    return 0;
}