结构体排序 hrbust 1023
来源:互联网 发布:转行金融 知乎 编辑:程序博客网 时间:2024/06/15 02:13
JiaoZhu and CSTime Limit: 2000 MSMemory Limit: 65536 KTotal Submit: 1389(558 users)Total Accepted: 675(522 users)Rating: Special Judge: NoDescription
自从电子竞技在中国被认定为第99个正式体育项目,教主就投身其中,CS(Counter Strike 反恐精英)是他拿手的一款游戏,有很多职业选手为之付出。
反恐精英中有各种不同的枪械,我们为了简化问题,规定每种枪有自己的名字、杀伤力、价格。
下面要求你按照如下规定给已知的枪支排序:
要求按照枪支的攻击力排序(由大到小),如果某些枪的攻击力相同则对这些枪按照价格排序(由小到大),如果某些枪的价格相同则对这些枪按照名字的字典序排列。(本题中若字符串a,b满足 strcmp(a, b) < 0 即满足字典序)
本题只有一组测试数据
第一行:N (1 <= N <= 100000) 表示有N种枪
第1..1 + N行:首先是枪支的名字(只包括大写字母、数字,最长占10个字符),接着是两个数字A (0 <= A <= 1000) B (0 <= B <= 1000) A代表杀伤力,B代表价格
排序后,每行输出一种枪的名字
Sample Input7
AK47 500 200
AWP 1000 500
USP 50 20
M4A1 500 300
MP5 200 100
MP3 200 100
MP4 200 100
Sample OutputAK47 500 200
AWP 1000 500
USP 50 20
M4A1 500 300
MP5 200 100
MP3 200 100
MP4 200 100
AWP
AK47
M4A1
MP3
MP4
MP5
USP
HintAK47
M4A1
MP3
MP4
MP5
USP
输入量巨大,建议使用scanf()与printf(),使用cin与cout可能会超时
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;struct N{char name[15];int A;int B;}; N s[100005]; int tmp(N a,N b){if(a.A==b.A){if(a.B == b.B){return strcmp(a.name,b.name) < 0;}else return a.B < b.B;}else return a.A>b.A;}int main(){int n;scanf("%d",&n);for(int i = 0; i < n; i++){scanf("%s %d %d",s[i].name,&s[i].A,&s[i].B);}sort(s,s+n,tmp);for(int i = 0 ; i < n;i++)printf("%s\n",s[i].name);}
阅读全文
0 0
- 结构体排序 hrbust 1023
- hrbust 1962 Rectangular Pizza (结构体排序)
- hrbust 1400 排序+求逆序
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- Hrbust
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- 结构体排序,多级排序
- redis缓存的相关知识
- web service接口 wsdl和asmx有什么区别
- Java并发学习(七)-AtomicInteger基本数据类型类
- 是什么让C#成为最值得学习的编程语言?
- difference between KONP and KONV
- 结构体排序 hrbust 1023
- Android调用系统应用打开各种类型文件
- 爱情转移歌词赏析
- [Android] 内存泄漏调试经验分享 (二)
- 记一次mysql频繁断开连接
- 访问权限修饰符对方法的访问限制
- 工具类总结(7)-double类型相加防溢出工具类
- Go语言学习总结
- xgboost 的前世今生