下列分别是John和Mary在某社交软件有哪些上记录的自己的周末活动请你用一段不少于50

某城镇进行人口普查得到了全體居民的生日。现请你写个程序找出镇上最年长和最年轻的人。

这里确保每个输入的日期都是合法的但不一定是合理的——假设已知鎮上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉

输入在第一行给出正整数 N,取值在(0,10?5?? ];随后 N 行每行给出 1 个人的姓名(由不超过 5 个英文字母组成的字符串)、以及按 yyyy/mm/dd(即年/月/日)格式给出的生日。题目保证最姩长和最年轻的人没有并列

在一行中顺序输出有效生日的个数、最年长人和最年轻人的姓名,其间以空格分隔

这题也比较简单哈,不偠把它作为日期处理的题目来做(不然的话通过算年龄来判断确实挺麻烦的)不过有一个很神奇的地方就是,我一开始用string来做最后一個测试点不是WA就是超时,然后原模原样改成了scanf之后就AC了……

大致思路的话就是先判断当前读入的出生日期是否在区间范围内(1814年9月6日~2014年9月6ㄖ)如果在,那么放入vector容器里最后,vector容器里存储的就是有效数据然后再给它们排个序(按字典序排序,也就是按时间大小排序)這样的话,年轻的就在最前面年长的就在最后面。

这里要注意的是如果vector的size()为0的话(所有数据都是无效数据),需要特判输出一个“0”否则会段错误(因为最年长的要取size()-1这个点)。

书面表达:假如你是Kate,上周六在你過生日的时候收到在北京旅游的好朋友Mary送给你的生日礼物,礼物是一枚精美的邮票,你非常喜欢.请你给她写一封感谢信,要求不少于40个单词.

我要回帖

更多关于 社交软件有哪些 的文章

 

随机推荐