ZOJ List the Books 水~
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1727
题目大意:
给你书名、出版时间、价格,让你按照一定的顺序排序。。
其中题目会给出优先级最高的,剩下两个按书名优先级>出版时间>价格来排序。
思路:
练习sort重载的。。。
不过sort(book,book+n,cmp_by_name);的重载函数竟然不能用引用。。不然会cp好吧,我习惯写重载<运算符了。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN=100+2;
struct Book
{
char name[MAXN];
int year,price;
}book[MAXN]; bool cmp_by_name(Book a,Book b)
{
int k=strcmp(a.name,b.name);
if(k < 0)
return true;
else if(k > 0)
return false; return a.year < b.year || (a.year==b.year && a.price<b.price);
} bool cmp_by_price(Book a,Book b)
{
if(a.price < b.price)
return true;
else if(a.price > b.price)
return false; int k=strcmp(a.name,b.name);
if(k < 0)
return true;
else if(k > 0)
return false; return a.year<b.year;
} bool cmp_by_year(Book a,Book b)
{
if(a.year < b.year)
return true;
else if(a.year > b.year)
return false; int k=strcmp(a.name,b.name);
if(k < 0)
return true;
else if(k > 0)
return false; return a.price<b.price;
}
int main()
{
int n;
int kase=0;
while(~scanf("%d",&n),n)
{
if(kase++)
puts(""); for(int i=0;i<n;i++)
scanf("%s%d%d",book[i].name,&book[i].year,&book[i].price); char cmd[20];
scanf("%s",cmd);
if(strcmp(cmd,"Name")==0)
sort(book,book+n,cmp_by_name);
else if(strcmp(cmd,"Year")==0)
sort(book,book+n,cmp_by_year);
else if(strcmp(cmd,"Price")==0)
sort(book,book+n,cmp_by_price); for(int i=0;i<n;i++)
printf("%s %d %d\n",book[i].name,book[i].year,book[i].price);
}
return 0;
}
ZOJ List the Books 水~的更多相关文章
- ZOJ 2723 Semi-Prime ||ZOJ 2060 Fibonacci Again 水水水!
两题水题: 1.如果一个数能被分解为两个素数的乘积,则称为Semi-Prime,给你一个数,让你判断是不是Semi-Prime数. 2.定义F(0) = 7, F(1) = 11, F(n) = F( ...
- ZOJ 3827 Information Entropy 水
水 Information Entropy Time Limit: 2 Seconds Memory Limit: 65536 KB Special Judge Informati ...
- ZOJ 3819 Average Score 水
水 Average Score Time Limit: 2 Seconds Memory Limit: 65536 KB Bob is a freshman in Marjar Univer ...
- ZOJ Special AC String 水
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3702 题目大意: 对于给定的一个字符串,满足如下要求输出AC,否则WA(好吧我 ...
- ZOJ 3168 Sort ZOJ7 水
再水一发,舍友肿么还在睡T T. ---------------------------------舍友还在睡觉的分割线--------------------------------- http:/ ...
- ZOJ 2514 Generate Passwords 水
啦啦啦,水一发准备去复习功课~ ------------------------------------------水一发的分割线----------------------------------- ...
- ZOJ 3827 Information Entropy 水题
Information Entropy Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.zju.edu.cn/onlinejudge/sh ...
- ZOJ 2002 Copying Books 二分 贪心
传送门:Zoj2002 题目大意:从左到右把一排数字k分,得到最小化最大份,如果有多组解,左边的尽量小. 思路:贪心+二分(参考青蛙过河). 方向:从右向左. 注意:有可能最小化时不够k分.如 ...
- ZOJ 3846 GCD Reduce//水啊水啊水啊水
GCD Reduce Time Limit: 2 Seconds Memory Limit: 65536 KB Special Judge You are given a sequ ...
随机推荐
- Kinect 开发 —— 进阶指引(上)
本文将会介绍一些第三方类库如何来帮助处理Kinect传感器提供的数据.使用不同的技术进行Kinect开发,可以发掘出Kinect应用的强大功能.另一方面如果不使用这些为了特定处理目的而开发的一些类库, ...
- ajax处理响应(三)
一旦脚本调用了send方法,浏览器就会在后台发送请求到浏览器.因为请求是在后台处理的,所以Ajax依靠事件来通知你这个请求的进度的进展情况,在上个随笔的里,使用handleResponse函数 ...
- Android之——短信的备份与还原
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47091281 眼下,Android手机中的一些软件能够实现手机短信的备份与还原操作 ...
- [Anuglar & NgRx] StoreRouterConnectingModule
Always treat Router as the source of truth When we use Ngrx, we can see that we will use a "Sto ...
- thinkphp内置标签简单讲解
thinkphp内置标签简单讲解 1.volist循环 name 需要遍历的数据 id 类似于foreach中 value offset 截取数据起始位置 length 截取数据的个数 mod 奇偶数 ...
- IIS6下AD域设置
简介:IIS6下AD域设置 IIS6下AD域设置 http://files.cnblogs.com/files/KingUp/AD%E5%9F%9F%E8%AE%BE%E7%BD%AE.rar
- Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045-RFC2049,上面有MIME的详细规范.Base64编码可用于在HTTP环境下传递较长的标识信息.例如 ...
- 自定义Base 64加密
一.前言 最近做软件需要一个功能,就是对文件进行加密.本来嘛,加密算法一堆一堆的,但是试了几个成熟的加密算法后发现对文件进行加密需要的时间很长,特别是上G的文件,这样客户是接受不了的.最后没办法了,好 ...
- 【习题 7-10 Uva11214】Guarding the Chessboard
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 迭代加深搜索. 可以想见最后深度不会很深吧.. 然后皇后之间互相攻击到是允许的.. 就这样 [代码] /* 1.Shoud it u ...
- Cocos2d-x学习笔记(三)CCNode分析
原创文章.转载请注明出处:http://blog.csdn.net/sfh366958228/article/details/38706483 通过前两份学习笔记,我们不难发现CCScene.CCLa ...