AcWing 862. 三元组排序(C)
原题链接
简单
作者:
Belous
,
2020-03-19 19:32:28
,
所有人可见
,
阅读 589
#include<stdio.h>
#include<stdlib.h>
struct S
{
int a;
double b;
char *l,*r;
}arr[10000];
int cmp(const void*a,const void*b)
{
const struct S *sa=(const struct S *)a;
const struct S *sb=(const struct S *)b;
return sa->a>sb->a;
}
char str[100001];
int main(void)
{
int N;
scanf("%d",&N);
char *p=str;
for(int i=0;i<N;++i)
{
scanf("%d%lf ",&arr[i].a,&arr[i].b);
arr[i].l=p;
while((*p=getchar())!='\n'&&*p!=EOF)
++p;
arr[i].r=p-1;
}
qsort(arr,N,sizeof(arr[0]),cmp);
for(int i=0;i<N;++i)
{
printf("%d %.2lf ",arr[i].a,arr[i].b);
while(arr[i].l<=arr[i].r)
putchar(*arr[i].l++);
puts("");
}
return 0;
}