Submission #5443591


Source Code Expand

from sys import stdin


def readLines():
    return [line.rstrip() for line in iter(stdin.readline, '')]


def putLine(line):
    print(line, flush=True)


def putLines(lines):
    for line in lines:
        putLine(line)


def isConflict(x, b, a):
    # x     |------|
    # b        |-
    # a       -|
    # or
    # b-a   |------|
    # x[0]     |-
    # x[1]    -|
    # を以って時間帯の重複と判断
    if (x[0] <= b and b <= x[1]):
        return True
    if (x[0] <= a and a <= x[1]):
        return True
    if (b <= x[0] and x[0] <= a):
        return True
    if (b <= x[1] and x[1] <= a):
        return True
    return False


def main(lines):
    """
    implemente concret logic
    """
    result = []
    tmp = []

    mod5down = (lambda x: x-(x % 5))
    mod5up = (lambda x: x if x % 5 == 0 else x + (5 - (x % 5)))

    # "xxxx-yyyy"に5分刻みを適用し "XXXX-YYYY"に変換
    for l in lines[1:]:
        # 前後を時、分でそれぞれ分割
        [(b1, b2), (a1, a2)] = [(x[:2], x[2:]) for x in l.split("-")]
        # 直前への丸め
        b = mod5down(int(b1)*60 + int(b2))
        # 直後への丸め
        a = mod5up(int(a1)*60 + int(a2))

        tmp.append([b, a])

    # 昇順ソート
    tmp = sorted(tmp, key=lambda x: x[0])
    # 時刻をマージ
    t = tmp[0]
    result.append([t[0], t[1]])
    for t in tmp[1:]:
        for r in result:
            # 重複がある場合
            if isConflict(r, t[0], t[1]):
                # 開始は早い方
                # 終了は遅い方
                r[0] = min(r[0], t[0])
                r[1] = max(r[1], t[1])
                break
            # 重複なしは単純追加
            result.append([t[0], t[1]])

    toTimeStr = (lambda x: "%02d%02d" % (x//60, x % 60))
    return [toTimeStr(x[0]) + "-" + toTimeStr(x[1]) for x in result]


putLines(main(readLines()))

Submission Info

Submission Time
Task D - 感雨時刻の整理
User tatsuyaamasaki
Language Python (3.4.3)
Score 0
Code Size 1977 Byte
Status WA
Exec Time 2121 ms
Memory 244084 KB

Judge Result

Set Name all
Score / Max Score 0 / 100
Status
AC × 30
WA × 3
TLE × 15
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 17 ms 3188 KB
00_sample_02.txt AC 18 ms 3188 KB
00_sample_03.txt AC 17 ms 3188 KB
cho_cho_chokudai.txt AC 127 ms 9584 KB
chokudai_ga_cho.txt AC 131 ms 10440 KB
test_01.txt TLE 2119 ms 242932 KB
test_02.txt TLE 2120 ms 244084 KB
test_03.txt TLE 2120 ms 243060 KB
test_04.txt TLE 2120 ms 242932 KB
test_05.txt TLE 2119 ms 242932 KB
test_06.txt AC 18 ms 3192 KB
test_07.txt AC 18 ms 3188 KB
test_08.txt AC 18 ms 3192 KB
test_09.txt AC 20 ms 3188 KB
test_10.txt AC 20 ms 3188 KB
test_11.txt TLE 2120 ms 243060 KB
test_12.txt AC 19 ms 3188 KB
test_13.txt AC 18 ms 3188 KB
test_14.txt AC 20 ms 3188 KB
test_15.txt AC 20 ms 3192 KB
test_16.txt WA 19 ms 3192 KB
test_17.txt AC 20 ms 3188 KB
test_18.txt AC 18 ms 3188 KB
test_19.txt AC 19 ms 3188 KB
test_20.txt AC 20 ms 3188 KB
test_21.txt AC 142 ms 10600 KB
test_22.txt AC 142 ms 10740 KB
test_23.txt AC 142 ms 10624 KB
test_24.txt AC 145 ms 10740 KB
test_25.txt AC 141 ms 10740 KB
test_26.txt AC 142 ms 10464 KB
test_27.txt AC 133 ms 10636 KB
test_28.txt TLE 2119 ms 231088 KB
test_29.txt AC 18 ms 3188 KB
test_30.txt TLE 2121 ms 242932 KB
test_31.txt TLE 2120 ms 243560 KB
test_32.txt TLE 2109 ms 136680 KB
test_33.txt TLE 2119 ms 234024 KB
test_34.txt WA 18 ms 3188 KB
test_35.txt TLE 2119 ms 243060 KB
test_36.txt AC 142 ms 10756 KB
test_37.txt TLE 2119 ms 233296 KB
test_38.txt WA 166 ms 10548 KB
test_39.txt TLE 2119 ms 228944 KB
test_40.txt TLE 2119 ms 235548 KB
test_41.txt AC 127 ms 10184 KB
test_42.txt AC 139 ms 10400 KB
test_43.txt AC 132 ms 10444 KB