C++结构体bLue's Ranklist - Vol.1
2018-02-22 13:01
246 查看
bLue's Ranklist - Vol.1
Time Limit: 1000 ms Memory Limit: 65536 KiB[align=center]Submit Statistic Discuss[/align]Problem Description
上一场比赛结束后,bLue 及时保存了一份比赛的排行榜 (Ranklist)。然而昨天 bLue 打开保存的 Ranklist 一看,发现保存的文件发生了不可描述的错误,非要强行描述的话,就是他保存的 Ranklist 上只能看到每个人的解题数量和总时间(包括罚时),而且顺序完全错乱了。崩溃的 bLue 看着崩坏的 Ranklist 一筹莫展。不过他突然想到,马上就到循环赛了,不如正好出一个题让学弟学妹来帮他修复坏掉的 Ranklist,这样他就可以拿 AC 的代码去修复文件了,是不是相当机智啊 ^_^ 。Ranklist 的排序规则是这样的:解题数多的靠前,如果解题数相同,则总时间少的靠前。如果两个人的解题数和总时间都相同,则他们的排名也相同。Input
输入数据有多组(数据组数不超过 1000),到 EOF 结束。每组数据包含多行:第 1 行是一个整数 n (0 < n < 1000),表示 Ranklist 上的人数。接下来有 n 行,每行包含两个整数 s, p (0 <= s < 20, 0 <= p < 10000),分别表示这个人的解题数和总时间(单位为分钟)。
Output
对于每组输入,输出 n 行,为重新排序后的 Ranklist。每行输出均为此 Ranklist 上一个人的信息,包含 3 个整数 r, s, p,分别表示排名、解题数和总时间。Sample Input
5 6 300 5 185 5 185 5 140 4 120
Sample Output
1 6 300 2 5 140 3 5 185 3 5 185 5 4 120
Hint
Source
【第六届ACM趣味编程循环赛 Round #1】bLue#include<bits/stdc++.h> using namespace std; struct ranklist{ int r,s,p; }person[1002]; bool cmp(ranklist a,ranklist b) { if(a.s!=b.s) return a.s>b.s; else if(a.p!=b.p) return a.p<b.p; else return 0;//去掉else这两行就AC不了,改了半天才发现o(╥﹏╥)o } int main() { int n,i,j; while(cin>>n) { for(i=0;i<n;i++) cin>>person[i].s>>person[i].p; sort(person,person+n,cmp); for(i=1;i<=n;i++) { person[i-1].r=i; j=i; while(person[j].s==person[j-1].s&&person[j].p==person[j-1].p&&j<n) { person[j].r=i; cout<<person[j-1].r<<' '<<person[j-1].s<<' '<<person[j-1].p<<'\n'; j++; } i=j; cout<<person[i-1].r<<' '<<person[i-1].s<<' '<<person[i-1].p<<'\n'; } } return 0; }
相关文章推荐
- bLue's Ranklist - Vol.1 oj
- C语言 结构体 bLue's Ranklist - Vol.1
- bLue's Ranklist - Vol.1
- 编程语言bLue's Ranklist - Vol.1
- bLue's Ranklist - Vol.1
- C++结构体bLue's Ranklist - Vol.2
- bLue's Ranklist - Vol.2
- bLue's Ranklist - Vol.3
- bLue's Ranklist - Vol.2 oj
- C语言 结构体 bLue's Ranklist - Vol.2
- bLue's Ranklist - Vol.2
- bLue's Ranklist - Vol.2 可以学到新方法
- android bluedroid bt 读写特性值的流程
- BlueDroid代码分析之GKI
- SegmentFault 技术周刊 Vol.1 - Vue.js 起手式
- BlueDroid介绍 【转】
- loaded the "BlueView" nib but the view outlet was not set 错误的解决办法。
- oj2489: C++结构体之统计最高最低分
- C++结构体排序个人总结(运算符重定义,比较器)
- IBM Bluemix解决方案架构师--胡香冬 《Bluemix创新平台》