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