@utkarsh: nice implementation.....thnx buddy....u made my day !!
--

Amol Sharma
Third Year Student
Computer Science and Engineering
MNNIT Allahabad




On Wed, Aug 3, 2011 at 1:07 AM, UTKARSH SRIVASTAV
<[email protected]>wrote:

> this is my accepted code
>
> #include<stdio.h>
> int flag;
> struct node
> {
>        char a;
>        int end;
>        struct node *next[10];
> }*root[10];
> struct node *makenode(char item,int b)
> {
>        int i,l;
>      struct node *temp;
>      temp=(struct node *)malloc(sizeof(struct node));
>      temp->a=item;
> //    printf("in makenode");
>     //  scanf("%d",&l);
>      temp->end=b;
>       //scanf("%d",&l);
>      for(i=0;i<10;i++)
>      temp->next[i]=NULL;
>       //scanf("%d",&l);
>      return temp;
> }
> insert(char *s)
> {
>                int i;
>                int b,l;
>                struct node *temp,*p;
>                p=root[s[0]-'0'];
>             for(i=0;s[i]!='\0';i++)
>               {
>                                if(root[s[0]-'0']==NULL)
>                                {
>                                                        if(s[1]=='\0')
>                                                        {
>                                                                      b=1;
>                                                        }
>                                                        else
>                                                        {
>                                                            b=0;
>                                                        }
>
>         //
> printf("\nfirst");
>
> root[s[0]-'0']=makenode(s[0],b);
>           //
> printf("\nfirst  %c",root[s[0]-'0']->a);
>             //
> scanf("%d",&l);
>
> p=root[s[0]-'0'];
>                                }
>
>                                else if(i!=0)
>                                {
>                                   // p=root[s[0]-'0'];
>
> if(p->next[s[i]-'0']!=NULL&&p->next[s[i]-'0']->end==1)
>                                                       {
>
> flag=1;
>
> p=p->next[s[i]-'0'];
>                                                       }
>                                                       else
> if(p->next[s[i]-'0']!=NULL&&p->next[s[i]-'0']->end==0)
>                                                       {
>
>
> p=p->next[s[i]-'0'];
>
> if(s[i+1]=='\0')
>                                                             {
>
> p->end=1;
>                                                                      }
>                                                             else
>                                                             {
>                                                             }
>                                                       }
>                                                        else
> if(p->next[s[i]-'0']==NULL)
>                                                        {
>
> if(s[i+1]=='\0')
>                                                        {
>                                                                      b=1;
>                                                        }
>                                                        else
>                                                        {
>                                                            b=0;
>                                                        }
>
> temp=makenode(s[i],b);
>
> p->next[s[i]-'0']=temp;
>
> p=temp;
>                                                        }
>                                  }
>                                  else if(i==0)
>                                  {
>                                       if(p->end==1&&s[1]!='\0')
>                                       flag=1;
>                                  }
>                               //   printf("\n %c %d ",p->a,p->end);
>               }
>               for(i=0;i<10;i++)
>               {
>                                if(p->next[i]!=NULL)
>                                {
>                                                    flag=1;
>                                                    break;
>                                }
>               }
> }
> main()
> {
>       int t,i,n;
>       char s[20];
>       scanf("%d",&t);
>
>       while(t--)
>       {
>              for(i=0;i<=9;i++)
>       {
>                        root[i]=NULL;
>       }
>                 flag=0;
>                 scanf("%d",&n);
>                 for(i=1;i<=n;i++)
>                 {
>                                scanf("%s",s);
>                                if(flag==0)
>                                insert(s);
>
>
>                 }
>                 if(flag==1)
>                 {
>                            printf("NO\n");
>                 }
>                 else
>
>                 {
>                            printf("YES\n");
>                 }
>       }
>       return 0;
> }
>
>
>
> --
> *UTKARSH SRIVASTAV
> CSE-3
> B-Tech 2nd Year
> @MNNIT ALLAHABAD*
>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to