struct tag_data{ char name[256]; int point; } data[256]; int cmp(void *a0,void *b0){ struct tag_data *a = a0; struct tag_data *b = b0; return a->point > b->point ? -1 : a->point < b->point; } int main(void){ int n,i,t; char s[256],*q; /* for(n=0;~scanf("%s%d",data[n].name,&data[n].point);++n); */ for(n=0;gets(s);++n){ q = rindex(s,' '); data[n].point = atoi(q+1); *q = '\0'; strcpy(data[n].name,s); } qsort(data,n,sizeof(struct tag_data),cmp); for(t=i=0;i