B1028 人口普查(python)

B1028 人口普查(python)_第1张图片

这判别条件有点捉急,我还没想到更好的判断的存储格式
一个测试点超时,一个输出格式错误?

n = int(input())
ls = []
for i in range(n):
    ls.append(input().split(' '))
M = [2014, 9, 6]
m = [1814, 9, 6]
M_name = ''
m_name = ''
cnt = 0
for s in ls:
    d = list(map(int, s[-1].split('/')))
    if 1814 < d[0] < 2014 or \
       (d[0] == 1814 and d[1] > 9) or \
       (d[0] == 1814 and d[1] == 9 and d[2] >= 6) or \
       (d[0] == 2014 and d[1] < 9) or \
       (d[0] == 2014 and d[1] == 9 and d[2] <=6):
        cnt += 1
        if M[0] > d[0] or \
           (M[0] == 1814 and M[1] > d[1]) or \
           (M[0] == 1814 and M[1] == d[1] and M[2] > d[2]) or \
           (M[0] == 2014 and M[1] > d[1]) or \
           (M[0] == 2014 and M[1] == d[1] and M[2] > d[2]):
            M = d
            M_name = s[0]
        if m[0] < d[0] or \
           (m[0] == 1814 and m[1] < d[1]) or \
           (m[0] == 1814 and m[1] == d[1] and m[2] < d[2]) or \
           (m[0] == 2014 and m[1] < d[1]) or \
           (m[0] == 2014 and m[1] == d[1] and m[2] < d[2]):
            m = d
            m_name = s[0]
print(cnt, M_name, m_name)

你可能感兴趣的:(PAT,(Basic,Level),Practice)