Advertisement
nontawat1996

1091

Mar 5th, 2013
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.10 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int mn[300005][2]= {0},n;
  4. int data[300005]= {0};
  5. int maxval=-1;
  6. int cmp(const void *a,const void *b)
  7. {
  8.     int *aa=(int*)a;
  9.     int *bb=(int*)b;
  10.     if(aa[0]>bb[0]) return 1;
  11.     else if(aa[0]==bb[0])
  12.     {
  13.         if(aa[1]>bb[1]) return 1;
  14.         else return -1;
  15.     }
  16.     else return -1;
  17. }
  18. int main()
  19. {
  20.     int i,j,tmp;
  21.     scanf("%d",&n);
  22.     data[1]=1;
  23.     for(i=0; i<n-1; i++)
  24.     {
  25.         scanf("%d%d",&mn[i][0],&mn[i][1]);
  26.         if(mn[i][0]>mn[i][1])
  27.         {
  28.             tmp=mn[i][0];
  29.             mn[i][0]=mn[i][1];
  30.             mn[i][1]=tmp;
  31.         }
  32.     }
  33.     qsort(mn,n-1,sizeof(mn[0]),cmp);
  34.  
  35.     for(i=0; i<n-1; i++)
  36.     {
  37.         if(data[mn[i][0]]!=0) data[mn[i][1]]=data[mn[i][0]]+1;
  38.         else
  39.         {
  40.             data[mn[i][0]]=2;
  41.             if(data[mn[i][1]]<2) data[mn[i][1]]=2;
  42.         }
  43.         if(data[mn[i][1]]>maxval)  maxval=data[mn[i][1]];
  44.     }
  45.     printf("%d\n",maxval);
  46.     /*for(i=1;i<=n;i++) printf("%d ::%d\n",i,data[i]);
  47.     for(i=0;i<n-1;i++) printf("%d %d\n",mn[i][0],mn[i][1]);*/
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement