ZOJ-1764

来源:互联网 发布:linux 删除一行 编辑:程序博客网 时间:2024/05/13 23:14
#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;}

0 0
原创粉丝点击