【提高】圣诞礼物gift(CZOI-2012-04)输入 复制 5 输出 复制 13 c++代码和方法
时间: 2023-05-25 08:03:16 浏览: 246
题目描述
Alice最喜欢的节日是圣诞节,因为那是她接受礼物的好日子。
Bob很想送个礼物给Alice,但是他突然意识到:他不知道应该送什么!
于是他决定问问Alice,Alice只告诉他一个要求:礼物的价格应该为不低于5元且不高于20元的整数元。
但是即使这样,Bob还是有太多礼物可以选了,于是他想到了一个选择策略:
- 按价格从小到大排序(Price);
- 在此基础上,按字典序从小到大排序(Dictionary sort);
- (字典序定义):对于两个非空字符串s和t,s<t当且仅当s的第一个字符小于等于t的第一个字符,并且去掉s与t的第一个字符之后的字符串s和t是按字典序排序的。
你能帮助Bob实现这样一个礼物选择方案吗?
输入格式
一个整数n,表示可选的礼物数量(1≤n≤1000)。
接下来为n行,每行一件礼物,包括名称(由小写字母构成的长度不超过30的字符串)和价格(一个5~20之间的整数)。
输出格式
按照选择方案从小到大排序的礼物名称,每行一个。
数据范围
样例
输入样例:
5
toy 5
candy 10
pearl 5
pencil 10
book 20
输出样例:
book
candy
pearl
pencil
toy
解题方法
笔者使用比较简单的排序算法, 第一核排序使用s1 < s2比较, 如果s1的价格比s2小, 那么不需要比较s1和s2的name的大小, 直接比较后面的元素. 如果s1和s2的价格相同时, 比较s1和s2的name, 如果s1的name比s2小, 那么s1就排在s2的前面.
C++ 代码
相关问题
【提高】圣诞礼物gift(CZOI-2012-04)输入 复制 5 输出 复制 13c++代码和方法
这道题是一道简单的找规律题。
首先,我们可以列出前几个数字:
1, 2, 4, 7, 11, ...
我们可以发现,第 $n$ 个数字等于前 $n-1$ 个数字的和再加上 $n$。
接下来,我们就可以使用简单的循环计算出所需要的数字了。
代码如下:
阅读全文