Submission #2527236


Source Code Expand

def count_jump(right_list, left_list, L):
    jump_count = 0
    if len(right_list) == 0:
        for i, p in enumerate(left_list):
            jump_count += p - i - 1
    elif len(left_list) == 0:
        for i, p in enumerate(right_list):
            jump_count += L - p - i
    else:
        # 各向きのグループの間隔を詰める
        for i, p in enumerate(right_list):
            jump_count += right_list[-1] - p - i
        for i, p in enumerate(left_list):
            jump_count += p - left_list[0] - i

        # グループ先頭同士の間を片方のグループを進めて詰める
        head_diff = left_list[0] - right_list[-1] - 1
        max_cnt = max(len(right_list), len(left_list))
        jump_count += head_diff * max_cnt

    return jump_count


def solve(rabbits, L):
    # 最初は右向き
    jump_count = 0
    bef_d = 'R'
    right_list = []
    left_list = []

    for n_pos, n_d in rabbits:
        # 背中合わせになったら、向き合っているグループのJUMP回数を求める
        if bef_d == 'L' and n_d == 'R':
            jump_count += count_jump(right_list, left_list, L)

            right_list = []
            left_list = []

        # うさぎを集める
        if n_d == 'R':
            right_list.append(n_pos)
        else:
            left_list.append(n_pos)
        # 前回の方向を保持
        bef_d = n_d

    jump_count += count_jump(right_list, left_list, L)

    return jump_count


if __name__ == '__main__':
    N, L = map(int, input().split())
    rabbits = []
    for _ in range(N):
        pos, direction = input().split()
        rabbits.append((int(pos), direction))
    result = solve(rabbits, L)
    print(result)

Submission Info

Submission Time
Task C - ウサギ跳び
User ksomemo
Language Python (3.4.3)
Score 100
Code Size 1780 Byte
Status AC
Exec Time 342 ms
Memory 14172 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 35
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask1_31.txt, subtask1_32.txt
Case Name Status Exec Time Memory
sample_01.txt AC 17 ms 3064 KB
sample_02.txt AC 17 ms 3064 KB
sample_03.txt AC 17 ms 3064 KB
subtask1_01.txt AC 17 ms 3064 KB
subtask1_02.txt AC 17 ms 3064 KB
subtask1_03.txt AC 270 ms 14164 KB
subtask1_04.txt AC 270 ms 14160 KB
subtask1_05.txt AC 267 ms 14168 KB
subtask1_06.txt AC 264 ms 14172 KB
subtask1_07.txt AC 257 ms 14168 KB
subtask1_08.txt AC 270 ms 14144 KB
subtask1_09.txt AC 275 ms 14144 KB
subtask1_10.txt AC 274 ms 13760 KB
subtask1_11.txt AC 336 ms 13364 KB
subtask1_12.txt AC 260 ms 14160 KB
subtask1_13.txt AC 268 ms 13788 KB
subtask1_14.txt AC 266 ms 14140 KB
subtask1_15.txt AC 269 ms 14144 KB
subtask1_16.txt AC 342 ms 13368 KB
subtask1_17.txt AC 163 ms 8380 KB
subtask1_18.txt AC 178 ms 8704 KB
subtask1_19.txt AC 58 ms 4444 KB
subtask1_20.txt AC 276 ms 12264 KB
subtask1_21.txt AC 87 ms 5644 KB
subtask1_22.txt AC 134 ms 7268 KB
subtask1_23.txt AC 248 ms 11252 KB
subtask1_24.txt AC 116 ms 6652 KB
subtask1_25.txt AC 248 ms 11324 KB
subtask1_26.txt AC 286 ms 12604 KB
subtask1_27.txt AC 21 ms 3064 KB
subtask1_28.txt AC 300 ms 13240 KB
subtask1_29.txt AC 222 ms 10720 KB
subtask1_30.txt AC 79 ms 5340 KB
subtask1_31.txt AC 193 ms 9448 KB
subtask1_32.txt AC 297 ms 12856 KB