#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct Player
{
char *name;
int solved;
int points;
};
int cmp1764(const void *p1, const void *p2)
{
struct Player *pp1 = (struct Player *) p1;
struct Player *pp2 = (struct Player *) p2;
if (pp1->solved != pp2->solved)
return pp2->solved - pp1->solved;
else
return pp1->points - pp2->points;
}
int main()
{
int n, i, j, a[4], b[4];
char name[100];
scanf("%d", &n);
struct Player *p = malloc(sizeof(struct Player) * n);
for (i = 0; i < n; i++)
{
scanf("%s", name);
p[i].name = malloc(sizeof(char) * strlen(name) + 1);
p[i].solved = 0;
p[i].points = 0;
strcpy(p[i].name, name);
for (j = 0; j < 4; j++)
{
scanf("%d %d", &a[j], &b[j]);
if (b[j])
{
p[i].solved++;
p[i].points += (a[j] - 1) * 20 + b[j];
}
}
}
qsort(p, n, sizeof(struct Player), cmp1764);
printf("%s %d %d\n", p->name, p->solved, p->points);
for (i = 0; i < n; i++)
free(p[i].name);
free(p);
return 0;
}
ZOJ-1764
最新推荐文章于 2021-01-18 20:53:35 发布