Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int mn[300005][2]= {0},n;
- int data[300005]= {0};
- int maxval=-1;
- int cmp(const void *a,const void *b)
- {
- int *aa=(int*)a;
- int *bb=(int*)b;
- if(aa[0]>bb[0]) return 1;
- else if(aa[0]==bb[0])
- {
- if(aa[1]>bb[1]) return 1;
- else return -1;
- }
- else return -1;
- }
- int main()
- {
- int i,j,tmp;
- scanf("%d",&n);
- data[1]=1;
- for(i=0; i<n-1; i++)
- {
- scanf("%d%d",&mn[i][0],&mn[i][1]);
- if(mn[i][0]>mn[i][1])
- {
- tmp=mn[i][0];
- mn[i][0]=mn[i][1];
- mn[i][1]=tmp;
- }
- }
- qsort(mn,n-1,sizeof(mn[0]),cmp);
- for(i=0; i<n-1; i++)
- {
- if(data[mn[i][0]]!=0) data[mn[i][1]]=data[mn[i][0]]+1;
- else
- {
- data[mn[i][0]]=2;
- if(data[mn[i][1]]<2) data[mn[i][1]]=2;
- }
- if(data[mn[i][1]]>maxval) maxval=data[mn[i][1]];
- }
- printf("%d\n",maxval);
- /*for(i=1;i<=n;i++) printf("%d ::%d\n",i,data[i]);
- for(i=0;i<n-1;i++) printf("%d %d\n",mn[i][0],mn[i][1]);*/
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement