L2-3 名人堂与代金券

题解

这题的话,每一个人都要占一个排名,即使排名并列了。文章地址https://www.yii666.com/article/756130.html网址:yii666.com

对于最后一个排名来说,即使人数超过了指定的k,也要加入。文章来源地址https://www.yii666.com/article/756130.html网址:yii666.com<文章来源地址:https://www.yii666.com/article/756130.html

代码

#include <bits/stdc++.h>
using namespace std; const int maxn=1e4+10;
struct Node {
char name[17];
int sc;
}node[maxn]; bool cmp(const Node& a,const Node& b) {
if (a.sc!=b.sc) {
return a.sc>b.sc;
}
return strcmp(a.name,b.name)<0;
} int main()
{
int n,g,k,sum=0;
scanf("%d%d%d",&n,&g,&k);
for (int i=0;i<n;i++) {
scanf("%s %d",node[i].name,&node[i].sc);
if (node[i].sc>=g) {
sum+=50;
}
else if (node[i].sc<g&&node[i].sc>=60) {
sum+=20;
}
}
sort(node,node+n,cmp);
printf("%d\n",sum);
int i=0;
while (i<k&&i<n) {
int step=0;
while (i+step<n&&node[i].sc==node[i+step].sc) {
printf("%d %s %d\n",i+1,node[i+step].name,node[i+step].sc);
step++;
}
i+=step;
}
return 0;
}

数据

/*
4 99 1
aaaa 99
bbbb 99
cccc 99
dddd 99
*/

版权声明:本文内容来源于网络,版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。文本页已经标记具体来源原文地址,请点击原文查看来源网址,站内文章以及资源内容站长不承诺其正确性,如侵犯了您的权益,请联系站长如有侵权请联系站长,将立刻删除

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信图片_20190322181744_03.jpg

微信扫一扫打赏

请作者喝杯咖啡吧~

支付宝扫一扫领取红包,优惠每天领

二维码1

zhifubaohongbao.png

二维码2

zhifubaohongbao2.png