每次奥运会期间,大家都非常关注奖牌榜排名的情况。

现在我们假设奖牌榜的排名规则,按优先级从高到低如下:

  1. 金牌 数量多的排在前面;
  2. 银牌 数量多的排在前面;
  3. 铜牌 数量多的排在前面;
  4. 若以上三个条件仍无法区分名次,则以国家名称的字典序排列。

我们假设国家名称不超过20个字符、各种奖牌数不超过100,且大于等于0。

输入描述

第一行输入一个整数N(0<N<21),代表国家数量;

然后接下来的N行,每行包含一个字符串Namei表示每个国家的名称,和三个整数Gi、Si、Bi

分别表示每个获得的金、银、铜牌的数量,以空格隔开,如(China 51 20 21)。

输出描述

输出奖牌榜的依次顺序,只输出国家名称,各占一行。

样例输入

5
China 32 28 34
England 12 34 22
France 23 33 2
Japan 12 34 25
Rusia 23 43 0

样例输出

China
Rusia
France
Japan
England

代码实现

#include<stdio.h>
#include<stdlib.h>
#include<string.h> typedef struct country {
char name[20];
int gold;
int silver;
int bronze;
}Ctry; // 交换array1与array2的值
void SwitchCtry(Ctry *array1, Ctry *array2)
{
Ctry temp; if(!array1 || !array2)
{
return;
}
temp = *array1;
*array1 = *array2;
*array2 = temp;
} // 对array数组按照规则进行排序
void Sort(Ctry *array, int n)
{ for(int i = 0; i < n - 1; i++)
{
for(int j = i + 1; j < n; j++)
{
if(array[i].gold < array[j].gold)
{
SwitchCtry(&array[i], &array[j]);
}
else if (array[i].gold == array[j].gold)
{
if (array[i].silver < array[j].silver)
{
SwitchCtry(&array[i], &array[j]);
}
else if (array[i].silver == array[j].silver)
{
if (array[i].bronze < array[j].bronze)
{
SwitchCtry(&array[i], &array[j]);
}
else if (array[i].bronze == array[j].bronze)
{
//strcmp()函数用到<string.h>
if(strcmp(array[i].name, array[j].name) > 0)
{
SwitchCtry(&array[i], &array[j]);
}
}
}
}
}
}
} int main()
{
int n;
Ctry *array = NULL; scanf("%d", &n);
if (n <= 0 || n >= 21)
{
return 1;
}
// 开辟结构体指针空间
array = (Ctry *)malloc(n * sizeof(Ctry));
if(array == NULL)
{
return 1;
}
// 获取输入值
for(int i = 0; i < n; i++)
{
scanf("%s %d %d %d", array[i].name, &array[i].gold, &array[i].silver, &array[i].bronze);
} Sort(array, n);
// 打印输出结果
for (int j = 0; j < n; j++)
{
printf("%s\n", array[j].name);
}
// 释放指针
free(array);
// 指针释放后置NULL
array = NULL; return 0;
}

个人主页:

www.codeapes.cn

Olympic Game的更多相关文章

  1. Gym 100818I Olympic Parade(位运算)

    Olympic Parade http://acm.hust.edu.cn/vjudge/contest/view.action?cid=101594#problem/I [题意]: 给出N个数,找出 ...

  2. CodeForces 215B Olympic Medal(数学啊)

    题目链接:http://codeforces.com/problemset/problem/215/B Description The World Programming Olympics Medal ...

  3. Olympic Class Ships【奥林匹克级邮轮】

    Olympic Class Ships You probably know about the Titanic, but it was actually just noe of three state ...

  4. [ACM_几何] The Deadly Olympic Returns!!! (空间相对运动之最短距离)

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28235#problem/B 题目大意: 有两个同时再空间中匀速运动的导弹,告诉一个时间以 ...

  5. [bzoj 3701] Olympic Games (莫比乌斯反演)

    题目描述 给出n,m,l,r,modn,m,l,r,modn,m,l,r,mod 表示一个(n+1)∗(m+1)(n+1)*(m+1)(n+1)∗(m+1)的格点图,求能够互相看见的点对个数对modm ...

  6. 构建通用的 React 和 Node 应用

    这是一篇非常优秀的 React 教程,这篇文章对 React 组件.React Router 以及 Node 做了很好的梳理.我是 9 月份读的该文章,当时跟着教程做了一遍,收获很大.但是由于时间原因 ...

  7. Codeforces CF#628 Education 8 A. Tennis Tournament

    A. Tennis Tournament time limit per test 1 second memory limit per test 256 megabytes input standard ...

  8. 告别我的OI生涯

    本文章写于2008年12月15日. 随着2008noip的结束,我也结束了我的OI生涯. 信息竞赛也许是从小到大让我最最努力的一件事.我记得参加2006noip初赛前,每天中午为了上信息课都吃不上中午 ...

  9. NOIP200805 笨小猴(低效算法)(一大桶水)【A006】

    [A006]笨小猴[难度A]—————————————————————————————————————————————————————————————— [题目要求] 笨小猴的词汇量很小,所以每次做英 ...

随机推荐

  1. 【HANA系列】SAP HANA Studio代码提示设置方法

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA Studio代 ...

  2. JsonProperty 使用

    引入 依赖 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId> ...

  3. 从MAP角度理解神经网络训练过程中的正则化

    在前面的文章中,已经介绍了从有约束条件下的凸优化角度思考神经网络训练过程中的L2正则化,本次我们从最大后验概率点估计(MAP,maximum a posteriori point estimate)的 ...

  4. mysql——单表查询——聚合函数——概念

    使用聚合函数查询 group by关键字通常和聚合函数一起使用 .count()函数 count()函数用来统计记录的条数 举例:使用count()函数统计employee表的记录数 select c ...

  5. [转帖]Linux杂谈: 树形显示多级目录--tree

    Linux杂谈: 树形显示多级目录--tree https://www.cnblogs.com/tp1226/p/8456539.html tree -L 最近写博客的时候偶尔会需要将文件目录结构直观 ...

  6. HDU 2586——How far away ?

    Time limit 1000 ms Memory limit 32768 kB Description There are n houses in the village and some bidi ...

  7. C++对象在继承情况下的内存布局

    1,C++ 中继承是非常重要的一个特性,本节课研究在继承的情形下,C++ 的对象模 型又有什么不同: 2,继承对象模型(最简单的情况下): 1,在 C++ 编译器的内部类可以理解为结构体: 2,子类是 ...

  8. 利用Kruskal算法求最小生成树解决聪明的猴子问题 -- 数据结构

    题目:聪明的猴子 链接:https://ac.nowcoder.com/acm/problem/19964 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个 ...

  9. cmd打开指定目录技巧

    在win的搜索栏直接打上“cmd”后回车 输入cmd 结果:

  10. Python基础数据类型int

    整型int 赋值运算符 a=1 a+=1 #a=a+1 a-=1 #a=a-1 a*=1 #a=a*1 a/=1 #a=a/1 a**=1 #a=a**1 a%=1 #a=a%1 算数运算符 + - ...