哈理工OJ 1569 比赛排名(排序和字符串处理)
2016-03-21 21:23
459 查看
比赛排名
Time Limit: 1000 MS Memory Limit: 10240 K
Total Submit: 106(54 users) Total Accepted: 60(52 users) Rating: Special Judge: No
Description
有n个同学参加了一场比赛,每个同学都有一个确定的名字。
并且每个人都一个得分,但可能由于一些犯规导致扣分,所以最终的实际得分为总得分减去犯规扣分。
如一个人得分为100,扣分为10,那么实际得分为90。
现在需要你来为这n个人确定比赛排名。
Input
第一行是一个整数t(t<=20),代表t组测试数据,接下来有t组测试数据。
对于每组测试数据,第一行输入一个整数n(n<=100)代表有多少个人。
之后输入n行,每行代表每个人的信息。
每行数据输入一个学生的名字(不多于10个字符的字符串)以及每个人的得分a(0=
Time Limit: 1000 MS Memory Limit: 10240 K
Total Submit: 106(54 users) Total Accepted: 60(52 users) Rating: Special Judge: No
Description
有n个同学参加了一场比赛,每个同学都有一个确定的名字。
并且每个人都一个得分,但可能由于一些犯规导致扣分,所以最终的实际得分为总得分减去犯规扣分。
如一个人得分为100,扣分为10,那么实际得分为90。
现在需要你来为这n个人确定比赛排名。
Input
第一行是一个整数t(t<=20),代表t组测试数据,接下来有t组测试数据。
对于每组测试数据,第一行输入一个整数n(n<=100)代表有多少个人。
之后输入n行,每行代表每个人的信息。
每行数据输入一个学生的名字(不多于10个字符的字符串)以及每个人的得分a(0=
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; struct node { char s[15]; int score; }a[1005]; bool cmp(node x,node y) { if(x.score==y.score) { if(strcmp(x.s,y.s)<0) { return x.s<y.s; } else return y.s<x.s; } return x.score>y.score; } int main() { int t; scanf("%d",&t); while(t--) { char c,d; int n,num; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%s %d",&a[i].s,&a[i].score); scanf("%c",&c); if(c=='(') { scanf("%d",&num); scanf("%c",&d); a[i].score-=num; } } sort(a,a+n,cmp); for(int i=0;i<n;i++) { printf("%-10s %5d\n",a[i].s,a[i].score); } } return 0; }
相关文章推荐
- Centos 升级glibc
- JVM(3)——JVM类加载器
- 如何获取sdcard的总容量
- 第五十九天
- day12_PLSQL编程--存储过程---统一发布动态属性管理
- linux关闭celinux服务
- day11__表管理
- day11_分区表------子分区的母模板(11g)
- 创建RDD的方式
- Note《Anchored Neighborhood Regression for Fast Example-Based Super-Resolution》
- Java核心知识点-类加载器
- 如何解决多线程程序中的死锁问题
- 下表操作符
- H5 - HTML5新增标签
- cygwin 安装 ffplay
- day11_分区表------子分区的母模板(10g)
- day11_分区表——分区表常用维护
- day11_分区表——11g新特性
- hdoj--1060--Leftmost Digit(数学)
- python的时间处理