博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法学习之路|人口普查
阅读量:7251 次
发布时间:2019-06-29

本文共 1000 字,大约阅读时间需要 3 分钟。

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

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

输入格式

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

输出格式

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

输入样例:

5
John 2001/05/12
Tom 1814/09/06
Ann 2121/01/30
James 1814/09/05
Steve 1967/11/20
输出样例:
3 Tom John
解题思路

利用scanf格式化录入这些字符。

然后根据年,月,日,依次判断,排除无效生日。

记录最年长人和最年轻人即可。

可惜的是最后一个例子没有通过,但是PAT不公布其测试例子,挺无奈的。

不过思路还是蛮不错的。

#include
#include
#include
using namespace std;int main(){ int n; cin>>n; map
v; for(int i=0;i
>d; scanf("%d/%d/%d",&a,&b,&c); if(a>2014||(a==2014&&b>9)||(a==2014&&b==9&&c>6)) continue; if(2014-a>200||(2014-a==200&&b>9)||(2014-a==200&&b==9&&c<6)) continue; v[a*10000+b*100+c]=d; } if(v.size()==0) cout<
second)<<" "<<(--v.end())->second;}

转载地址:http://wfebm.baihongyu.com/

你可能感兴趣的文章
多模型融合推荐算法在达观数据的运用
查看>>
JDK 11 马上就要来了!JDK 12 还会远吗?
查看>>
Kali Linux 2019.1 发布,Metasploit 更新到 5.0 版本
查看>>
【mysql的设计与优化专题(1)】ER图,数据建模与数据字典
查看>>
Jibo’s Name: How did we pick it?
查看>>
device's media capture mechanism,利用input:file调用设备的照相机/相册、摄像机、录音机...
查看>>
BroadLink:三款新品力求无障碍人机交互,三大平台分三期对外开放 ...
查看>>
掌门1对1获3.5亿美元E-1轮融资,华人文化产业基金、中金甲子基金等投资 ...
查看>>
Unity中的通用对象池
查看>>
ORA-00600: internal error code, arguments: [16703], [1403], [28], [...
查看>>
忆芯科技发布新一代国产主控芯片STAR1000P!4月完成量产版本 ...
查看>>
如何用条码标签打印软件实现商品价签制定会员价 ...
查看>>
如何轻松实现个性化推荐系统
查看>>
Mysql高级查询 内连接和外连接详解
查看>>
基于AWS的电子商务网站架构——Web前端
查看>>
基于险企传统资源优势的“一核三环”规划——互联网平台建设
查看>>
社交网络:有意义的不仅是邓巴数
查看>>
MySQL优化案例
查看>>
02 贝叶斯算法 - 案例一 - 鸢尾花数据分类
查看>>
场景数据互为表里!畅想2027,保险行业发展愿景
查看>>