Федоров Денис 404 группа ZenLeaders 7982
Босиев Игорь Александрович 404 ZenLeaders 6576
nn1import numpy as np
1import datetime as dt2import datetime as dt
n2from operator import itemgettern3from operator import itemgetter, attrgetter
34
n4def to_time(str):n5def conv(str):
5    date_time_str = str6    date_time_str = str
6    date_time_obj = dt.datetime.strptime(date_time_str, '%H:%M:%S')7    date_time_obj = dt.datetime.strptime(date_time_str, '%H:%M:%S')
7    return date_time_obj.time()8    return date_time_obj.time()
n8(NameLenMax, FamLenMax, TeamLenMax, TimeLenMaxe) = (0, 0, 0, 0)n9(maxlenname, maxlenfam, maxlenteam, maxlentime) = (0, 0, 0, 0)
910
n10def add_person(str):n11def pars(str):
11    cur_ch = str.split(' ')12    lst = str.split(' ')
12    name = cur_ch[0]13    name = lst[0]
13    family = cur_ch[1]14    family = lst[1]
14    team = ' '.join(cur_ch[2:len(cur_ch) - 1])15    team = ' '.join(lst[2:len(lst) - 1])
15    time = cur_ch[-1]16    time = lst[-1]
16    return (name, family, team, to_time(time))17    return (name, family, team, conv(time))
1718
n18def to_time2(str):n19def conv2(str):
19    newstr = ''20    newstr = ''
20    for i in range(0, len(str)):21    for i in range(0, len(str)):
21        if str[i] == '0' and i in [0, 3, 6]:22        if str[i] == '0' and i in [0, 3, 6]:
22            continue23            continue
23        else:24        else:
24            newstr += str[i]25            newstr += str[i]
25    return newstr26    return newstr
2627
n27def max_of_elements(a):n28def maxels(matr):
28    global NameLenMax, FamLenMax, TeamLenMax, TimeLenMaxe29    global maxlenname, maxlenfam, maxlenteam, maxlentime
29    for cur_ch in a:30    for lst in matr:
30        name = cur_ch[0]31        name = lst[0]
31        if NameLenMax < len(name):32        if maxlenname < len(name):
32            NameLenMax = len(name)33            maxlenname = len(name)
33        family = cur_ch[1]34        family = lst[1]
34        if FamLenMax < len(family):35        if maxlenfam < len(family):
35            FamLenMax = len(family)36            maxlenfam = len(family)
36        team = cur_ch[2]37        team = lst[2]
37        if TeamLenMax < len(team):38        if maxlenteam < len(team):
38            TeamLenMax = len(team)39            maxlenteam = len(team)
39        time = cur_ch[-1].strftime('%H:%M:%S')40        time = lst[-1].strftime('%H:%M:%S')
40        if TimeLenMaxe < len(time):41        if maxlentime < len(time):
41            TimeLenMaxe = len(time)42            maxlentime = len(time)
42str = input()43str = input()
n43a = []n44matr = []
44while str:45while str:
n45    a.append(add_person(str))n46    matr.append(pars(str))
46    str = input()47    str = input()
n47res = sorted(a, key=itemgetter(-1, 1, 0, 2))n48res = sorted(matr, key=itemgetter(-1, 1, 0, 2))
48if len(res) <= 2:49if len(res) <= 2:
n49    kol = len(res)n50    col = len(res)
50else:51else:
n51    kol = 1n52    col = 1
52    rt = 053    reit = 0
53    for i in range(len(res) - 1):54    for i in range(len(res) - 1):
54        if res[i][-1] == res[i + 1][-1]:55        if res[i][-1] == res[i + 1][-1]:
n55            kol += 1n56            col += 1
56        else:57        else:
n57            rt += 1n58            reit += 1
58            if rt == 3:59            if reit == 3:
59                break60                break
t60            kol += 1t61            col += 1
61max_of_elements(res[:kol + 1])62maxels(res[:col + 1])
62for i in range(kol):63for i in range(col):
63    print(res[i][0].ljust(NameLenMax), end=' ')64    print(res[i][0].ljust(maxlenname), end=' ')
64    print(res[i][1].ljust(FamLenMax), end=' ')65    print(res[i][1].ljust(maxlenfam), end=' ')
65    print(res[i][2].ljust(TeamLenMax), end=' ')66    print(res[i][2].ljust(maxlenteam), end=' ')
66    print(to_time2(res[i][-1].strftime('%H:%M:%S')), end='')67    print(conv2(res[i][-1].strftime('%H:%M:%S')), end='')
67    print()68    print()
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op