某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。
这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200
岁的生日和未出生的生日都是不合理的,应该被过滤掉。
输入在第一行给出正整数N,取值在(0, 105];随后N行,每行给出1个人的姓名(由不超过5个英文字母组成的字符串)、以及
按“yyyy/mm/dd”(即年/月/日)格式给出的生日。题目保证最年长和最年轻的人没有并列。
在一行中顺序输出有效生日的个数、最年长人和最年轻人的姓名,其间以空格分隔。
5<br/>John 2001/05/12<br/>Tom 1814/09/06<br/>Ann 2121/01/30<br/>James 1814/09/05<br/>Steve 1967/11/20
3 Tom John
beg = "1814/09/06"
ed = "2014/09/06"
old_name = ""
young_name = ""
old_bir = ed
young_bir = beg
n = int(input())
cnt = 0
for i in range(n):
_name, _bir = input().split()
if beg <= _bir <= ed:
cnt += 1
if _bir > young_bir:
young_name = _name
young_bir = _bir
if _bir < old_bir:
old_name = _name
old_bir = _bir
print(cnt, end="")
if old_name != "":
print("", old_name, end="")
if young_name != "":
print("", young_name) pop=int(input())
low,up=18140906,20140906
eldest_name,youngest_name='',''
eldest_age,youngest_age=up,low
count=0
for i in range(pop):
name,birth=map(str,input().split())
birth=int(''.join(birth.split('/')))
if birth>up&nbs***bsp;birth<low:
continue
else:
count+=1
if birth<eldest_age:
eldest_name=name
eldest_age=birth
if birth>youngest_age:
youngest_name=name
youngest_age=birth
print(str(count)+' '+eldest_name+' '+youngest_name) N = eval(input()) L = [input().split() for i in range(N)] L = [i for i in L if i[1] <= '2014/09/06' and i[1] >= '1814/09/06'] print(len(L), min(L,key = lambda i: i[1])[0], max(L,key = lambda i: i[1])[0])
'''Python暴力求解了,datetime超时没办法'''
num = int(input())
name,messages= [],[]
for i in range(num):
message = input().split()
infro = message[1].split('/')
infros = int(infro[0])*360 + int(infro[1])*30 + int(infro[2])#日期变天
if 653315 < infros < 725316:#哈哈哈,手动计算的上下限度
messages.append(infro)
name.append(message[0])
Maxday = max(messages)
Minday = min(messages)
print(len(name),name[messages.index(Minday)],name[messages.index(Maxday)]) 使用datetime做会超时,不妨转化为数字比较
# -*- coding : utf-8 -*-
def method():
n = int(input())
count = 0
high = 20140906
low = 18140906
odd = high
young = low
young_name = ''
odd_name = ''
for i in range(n):
name, time_str = input().split()
year, month, day = map(int, time_str.split('/'))
num = year * 10000 + month * 100 + day
if low <= num <= high:
count += 1
if num <= odd:
odd = num
odd_name = name
if num >= young:
young = num
young_name = name
print(count, odd_name, young_name)
if __name__ == '__main__':
method()
number = input()
old,young,people = 20150000,0,0
oldname,youngname = '',''
for i in range(int(number)):
name,age = map(str,input().split())
agenumber = int(''.join(age.split('/')))
if 18140906 <= agenumber <= 20140906:
if agenumber < old:
old = agenumber
oldname = name
if agenumber > young:
young = agenumber
youngname = name
people += 1
print(people,oldname,youngname)
#在输入的过程中进行查找,不用保存下来。节省空间
try:
while True:
num = int(input())
pastDays = '1814/09/06' #初始化最早的出生日期
nowDays = '2014/09/06' #最晚的生日
young = '1814/09/06' #初始化年轻人的生日为最老
elder = '2014/09/06' #初始化老年人的生日为最年轻
legal = 0
for i in range(num): #输入中比较
temp = input().split()
if pastDays <= temp[1] <= nowDays:
legal += 1
if temp[1] > young:
youngName = temp[0]
young = temp[1]
if temp[1] < elder:
elder = temp[1]
elderName = temp[0]
print("%d %s %s" % (legal,elderName,youngName))
except Exception:
pass