Submission #4013211


Source Code Expand

def str2time(x):
    return ((int(i[:2]), int(i[2:]))for i in x.split('-'))

def roundtime(x, b):
    hour, minute = x
    # b is True: for before str
    if b:
        for m in range(0, 60, 5)[::-1]:
            if minute >= m:
                return (hour, m)

    # b is False: for after str
    else:
        for m in range(0, 60, 5):
            if minute <= m:
                return (hour, m)
        return (hour+1, 0)

def input2time(x):
    before, after = str2time(x)
    before_rounded = roundtime(before, True)
    after_rounded = roundtime(after, False)
    return (before_rounded, after_rounded)
    
def int2str(y):
    return ('0' + str(y))[-2:]

def time2int(x):
    # (hour, minute) => int
    return int(''.join(map(int2str, x)))

def int2time(x):
    # int => (hour, minute)
    x = ('00' + str(x))[-4:]
    return (int(x[:2]), int(x[2:]))
    
def time_sort(time_lis):
    before_index = [time2int(x[0]) for x in time_lis]
    before_index = sorted(range(len(before_index)), key=lambda i: before_index[i])
    return [time_lis[i] for i in before_index]

def join(x, y):
    x_before, x_after = (time2int(t) for t in x)
    y_before, y_after = (time2int(t) for t in y)
    if x_after >= y_before:
        return [(int2time(x_before), int2time(max(x_after, y_after)))]
    else:
        return [x, y]
    
def time2str(x):
    # (hour, minute) => str
    return ''.join(map(int2str, x))
    

N = int(input())
time_lis = [input2time(input()) for i in range(N)]
time_sorted = time_sort(time_lis)

output = []
for t in time_sorted:
    if len(output) == 0:
        output.append(t)
    else:
        x = output[-1]
        output = output[:-1] + join(x, t)
for o in output:
    print('-'.join(list(map(time2str, o))))

Submission Info

Submission Time
Task D - 感雨時刻の整理
User sawarawara
Language Python (3.4.3)
Score 100
Code Size 1803 Byte
Status AC
Exec Time 644 ms
Memory 11996 KB

Judge Result

Set Name all
Score / Max Score 100 / 100
Status
AC × 48
Set Name Test Cases
all 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, cho_cho_chokudai.txt, chokudai_ga_cho.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 19 ms 3188 KB
00_sample_02.txt AC 18 ms 3188 KB
00_sample_03.txt AC 19 ms 3188 KB
cho_cho_chokudai.txt AC 614 ms 10748 KB
chokudai_ga_cho.txt AC 613 ms 11640 KB
test_01.txt AC 21 ms 3188 KB
test_02.txt AC 22 ms 3192 KB
test_03.txt AC 21 ms 3188 KB
test_04.txt AC 21 ms 3188 KB
test_05.txt AC 22 ms 3188 KB
test_06.txt AC 23 ms 3188 KB
test_07.txt AC 22 ms 3188 KB
test_08.txt AC 20 ms 3188 KB
test_09.txt AC 31 ms 3188 KB
test_10.txt AC 31 ms 3188 KB
test_11.txt AC 29 ms 3188 KB
test_12.txt AC 27 ms 3188 KB
test_13.txt AC 23 ms 3188 KB
test_14.txt AC 30 ms 3188 KB
test_15.txt AC 32 ms 3188 KB
test_16.txt AC 22 ms 3188 KB
test_17.txt AC 30 ms 3188 KB
test_18.txt AC 23 ms 3188 KB
test_19.txt AC 27 ms 3188 KB
test_20.txt AC 28 ms 3188 KB
test_21.txt AC 626 ms 11868 KB
test_22.txt AC 601 ms 11888 KB
test_23.txt AC 604 ms 11868 KB
test_24.txt AC 602 ms 11920 KB
test_25.txt AC 598 ms 11880 KB
test_26.txt AC 601 ms 11868 KB
test_27.txt AC 593 ms 11632 KB
test_28.txt AC 610 ms 11872 KB
test_29.txt AC 18 ms 3188 KB
test_30.txt AC 19 ms 3188 KB
test_31.txt AC 108 ms 4336 KB
test_32.txt AC 19 ms 3188 KB
test_33.txt AC 416 ms 8812 KB
test_34.txt AC 18 ms 3188 KB
test_35.txt AC 23 ms 3188 KB
test_36.txt AC 644 ms 11996 KB
test_37.txt AC 604 ms 11864 KB
test_38.txt AC 603 ms 11876 KB
test_39.txt AC 601 ms 11884 KB
test_40.txt AC 598 ms 11764 KB
test_41.txt AC 592 ms 11384 KB
test_42.txt AC 593 ms 11748 KB
test_43.txt AC 580 ms 11620 KB