Description

有n个同学参加了一场比赛,每个同学都有一个确定的名字。

并且每个人都一个得分,但可能由于一些犯规导致扣分,所以最终的实际得分为总得分减去犯规扣分。

如一个人得分为100,扣分为10,那么实际得分为90。

现在需要你来为这n个人确定比赛排名。

Input

第一行是一个整数t(t<=20),代表t组测试数据,接下来有t组测试数据。

对于每组测试数据,第一行输入一个整数n(n<=100)代表有多少个人。

之后输入n行,每行代表每个人的信息。

每行数据输入一个学生的名字(不多于10个字符的字符串)以及每个人的得分a(0=<a<=1000)和扣分b(0=<b<=a)。

格式为a(b),如果b为0,则直接输入a无括号。

如得分为100,扣分为10。则输入100(10)。

如果扣分为0则输入100无括号。

详情请看输入样例。

Output

对于每组测试数据:

首先将这n个同学按照实际得分从大到小排名。

如果得分相同则按照名字的字典序排从小到大排。

依次输出每个学生的信息。

每个学生占一行,输出名字(10个字符宽,左对齐),实际得分(5个字符宽,右对齐)。

名字和实际得分间有一个空格。

Sample Input

1
4
Smith 100(10)
Bush 100
Bob 100
John 200(20)

Sample Output

John         180
Bob          100
Bush         100
Smith         90
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <iomanip>
#include <algorithm>using namespace std;struct node{string name;int score;
};void stringToint(string s, int &a, int &b){int len = s.length();a = b = 0;bool flag = false;for (int i = 0; i < len; i++){if (s[i] == '('){flag = true;continue;} else if (s[i] == ')'){break;}else if (flag){b = b*10 + (s[i] - '0');} else {a = a*10 + (s[i]-'0');}}
}bool cmp(node a, node b){if (a.score == b.score)return a.name < b.name;return a.score > b.score;
}node info[105];int main()
{int t, n;int a, b;string s, str;cin >> t;while (t--){cin >> n;for (int i = 0; i < n; i++){cin >> s >> str;if (str.find("(", 0) == string::npos){a = 0;for (int j = 0; j < str.length(); j++){a = a*10 + (str[j]-'0');}b = 0;} else {stringToint(str, a, b);}info[i].name = s;info[i].score = a - b;}sort(info, info+n, cmp);for (int i = 0; i < n; i++){cout << setiosflags(ios::left) << setw(10) << info[i].name << " ";cout << setiosflags(ios::right);cout << setw(5) << info[i].score << endl;cout << resetiosflags(ios::right);}}return 0;
}

HRBUST - 1569 比赛排名相关推荐

  1. #问题求解与编程# 实验二 D 比赛排名预测

    比赛排名预测 发布时间: 2018年3月27日 09:17   最后更新: 2018年3月29日 20:13   时间限制: 1000ms   内存限制: 128M 描述 听说ACM爱好者协会即将举办 ...

  2. 如何在Vjudge创建ZOJ的比赛排名

    在ZOJ手动提交代码后,Vjudge爬取提交ZOJ的提交信息创建比赛排名. 前提:在PTA(PTA | 程序设计类实验辅助教学平台)和VJ(Virtual Judge)有帐号. 作为测试,在VJ创建一 ...

  3. C语言北京冬奥会比赛排名系统

    C语言北京冬奥会比赛排名系统 编写程序实现2022年北京冬奥会四种单人赛事的角逐,包括雪车.单板滑雪.速度滑冰.花样滑冰.从文件读取不少于28名运动员的参赛信息,包括姓名.国籍.年龄(g,单位岁).体 ...

  4. 滴滴校招编程题-田径运动会比赛排名

    题目描述 一年一度的X星人田径运动会隆重开幕.小小X报名参加了跳跃比赛,这可是小小X最擅长的项目!跳跃比赛分为两轮,一轮是跳高,一轮是跳远.最终成绩将综合两轮比赛的成绩来确定,并且两轮比赛成绩在最终成 ...

  5. 爬虫抓取BestCoder的比赛排名

    爬虫是个非常有意思的东西,它是根据网页上的文件结构来抓取相应内容的技术.由于最近ACM省赛在即,我负责统计做题,所以便用java写了个抓取BestCoder比赛情况的爬虫程序. 先来说说爬虫的几种抓取 ...

  6. CACL联赛第一赛季第一轮比赛排名公布!

    亲爱的同学们,CACL联赛第一赛季第一轮,"波士顿房价预测"比赛结束啦!本轮比赛共计31支队伍提交了有效结果. 一.比赛结果 第一名:浙江大学AI俱乐部 第二名:中国海洋大学智能数 ...

  7. NOI / 2.1基本算法之枚举2673:比赛排名

    总时间限制: 1000ms 内存限制: 65536kB 描述 5名运动员参加100米赛跑,各自对比赛结果进行了预测: A说:E是第1名. B说:我是第2名. C说:A肯定垫底. D说:C肯定拿不了第1 ...

  8. ACM比赛排名与罚时计算问题

    样例: #include<algorithm> #include<stdio.h> #include<string.h> using namespace std; ...

  9. 新疆大学(新大)OJ xju 1006: 比赛排名 第二类斯特林数+阶乘

    题目链接:http://acm.xju.edu.cn/JudgeOnline/problem.php?id=1006 第二类斯特林数: 第二类Stirling数实际上是集合的一个拆分,表示将n个不同的 ...

最新文章

  1. SQL Server 远程无法连接
  2. 解决windows7下vs2008不能正常编译ActiveX控件的问题
  3. android init(system/core/init/init.c)分析
  4. 为你讲解ELK的组成与部署
  5. php7视频处理扩展_PHP7扩展开发之类型处理
  6. 语义分割Swin Transformer
  7. 【量子信息与量子计算简明教程|陈汉武】阅读笔记1——第一章 量子信息与量子计算的基础概念
  8. 正式版TBSA 6.0(用来分析多层及高层建筑结构的专用程序)
  9. 微信小程序(一):微信小程序与服务器的简单链接
  10. 第八届山东省赛题 I Parity check 【找规律】
  11. ApacheCN 编程/大数据/数据科学/人工智能学习资源 2019.11
  12. 为什么中国的房价降不下来?
  13. python实例方法不可以用类调用_python中可以直接用类调用方法吗
  14. 秉火429笔记之八 RCC时钟
  15. 代码行为异常容错机制与自我调节
  16. uniapp开发写了key 但微信小程序时警告-Now you can provide attr `wx:key` for a `wx:for` to improve performance.
  17. 看完这篇还不懂高并发中的线程与线程池你来打我
  18. ctf速成_速成:共享对象摆弄
  19. 【一起学习输入法】华宇拼音输入法开源版本解析(2)
  20. 推荐一个免费GIF动图下载的网站

热门文章

  1. excel离散度图表怎么算_excel表格分析数据离散性-EXCEL 表格中 离散度 是哪一个啊?...
  2. 【实验室服务器记载】
  3. java char字节数_Java中char到底是多少字节?
  4. mysql日期隐式转换_mysql中的隐式转换
  5. Spring英文参考文档翻译
  6. 顺丰丰桥接口开发-java(前篇)
  7. 【Windows】C盘右键扩展卷是灰色的怎么办?如何扩展C盘分区?
  8. Redmi4X刷入Ubuntu touch真正成为一台远程无需人操作的云服务器(就是配置垃圾)
  9. 如何使用Threatest测试端到端威胁检测规则的有效性
  10. top1与top5错误率