某城镇进⾏⼈⼝普查,得到了全体居⺠的⽣⽇。现请你写个程序,找出镇上最年⻓和最年轻的⼈。这⾥确保每个输⼊的⽇期都是合法的,但不⼀定是合理的——假设已知镇上没有超过200岁的⽼⼈,⽽今天是2014年9⽉6⽇,所以超过200岁的⽣⽇和未出⽣的⽣⽇都是不合理的,应该被过滤掉。
输⼊格式:
输⼊在第⼀⾏给出正整数N,取值在(0, 10^5];随后N⾏,每⾏给出1个⼈的姓名(由不超过5个英⽂字⺟组成的字符串)、以及按“yyyy/mm/dd”(即年/⽉/⽇)格式给出的⽣⽇。题⽬保证最年⻓和最年轻的⼈没有并列。
输出格式:
在⼀⾏中顺序输出有效⽣⽇的个数、最年⻓⼈和最年轻⼈的姓名,其间以空格分隔。
输⼊样例:
1 | 5 |
输出样例:
1 | 3 Tom John |
分析:⽤字符串接收name和birth,如果当前birth >= “1814/09/06″且<= “2014/09/06″,则是有效⽣⽇, 有效个数cnt++,如果birth >= maxbirth,则更新maxname和maxbirth的值;如果birth <= minbirth,则更新minname和minbirth的值,这⾥的max和min是指数值上的⼤⼩~最后输出cnt,minname和 maxname,minname表示最年⻓的(⽣⽇的数值⼤⼩最⼩的),maxname表示最年轻的(⽣⽇的数值 ⼤⼩最⼤的)~
1 |
|
本系列(PAT算法)作者mail:1302304703@qq.com(非本人)