HDU 1100. Final Standings(快排)

题目链接

以前对快排不熟,不会搞结构体快排,今天正巧比赛里有这个题。。。秒杀了。。还是研究树形DP吧。。

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <stdlib.h>
 4 struct node
 5 {
 6     int x;
 7     int y;
 8     int id;
 9 }p[150001];
10 int cmp(const void *a,const void *b)
11 {
12     struct node *c = (struct node *)a;
13     struct node *d = (struct node *)b;
14     if(c->y!=d->y) return d->y-c->y;
15     else return c->id-d->id;
16 }
17 int main()
18 {
19     int n,i,sv,ev;
20     scanf("%d",&n);
21     for(i = 0;i <= n-1;i ++)
22     {
23         scanf("%d%d",&sv,&ev);
24         p[i].x = sv;
25         p[i].y = ev;
26         p[i].id = i;
27     }
28     qsort(p,n,sizeof(p[0]),cmp);
29     for(i = 0;i <= n-1;i ++)
30     {
31         printf("%d %d\n",p[i].x,p[i].y);
32     }
33     return 0;
34 }

 

posted @ 2012-07-27 08:52  Naix_x  阅读(316)  评论(0编辑  收藏  举报