提出 #6702225


ソースコード 拡げる

S = input()
N = len(S)
left_R = [0] * N
right_L = [N-1] * N

for i,s in enumerate(S[1:],1):
    left_R[i] = i if s == 'R' else left_R[i-1]
    
for i,s in enumerate(S[N-2::-1],1):
    i = N - 1 - i
    right_L[i] = i if s == 'L' else right_L[i+1]
    
answer = [0] * N
for i,(s,R,L) in enumerate(zip(S,left_R, right_L)):
    if s == 'L':
        # R に流れ着いて、RとR+1で往復
        j = left_R[i]
        if (i+j) & 1:
            j += 1
    else:
        j = right_L[i]
        if (i+j) & 1:
            j -= 1
    answer[j] += 1
print(' '.join(map(str,answer)))

提出情報

提出日時
問題 D - Gathering Children
ユーザ maspy
言語 Python (3.4.3)
得点 400
コード長 600 Byte
結果 AC
実行時間 158 ms
メモリ 15396 KiB

ジャッジ結果

セット名 All Sample
得点 / 配点 400 / 400 0 / 0
結果
AC × 21
AC × 3
セット名 テストケース
All sample_01, sample_02, sample_03, testcase_01, testcase_02, testcase_03, testcase_04, testcase_05, testcase_06, testcase_07, testcase_08, testcase_09, testcase_10, testcase_11, testcase_12, testcase_13, testcase_14, testcase_15, testcase_16, testcase_17, testcase_18
Sample sample_01, sample_02, sample_03
ケース名 結果 実行時間 メモリ
sample_01 AC 19 ms 3064 KiB
sample_02 AC 18 ms 3064 KiB
sample_03 AC 18 ms 3064 KiB
testcase_01 AC 98 ms 10764 KiB
testcase_02 AC 90 ms 10232 KiB
testcase_03 AC 145 ms 15188 KiB
testcase_04 AC 144 ms 15344 KiB
testcase_05 AC 99 ms 10936 KiB
testcase_06 AC 115 ms 13192 KiB
testcase_07 AC 136 ms 15220 KiB
testcase_08 AC 139 ms 15220 KiB
testcase_09 AC 45 ms 5620 KiB
testcase_10 AC 137 ms 15396 KiB
testcase_11 AC 158 ms 15348 KiB
testcase_12 AC 142 ms 15220 KiB
testcase_13 AC 133 ms 15220 KiB
testcase_14 AC 134 ms 15220 KiB
testcase_15 AC 149 ms 15396 KiB
testcase_16 AC 138 ms 15220 KiB
testcase_17 AC 146 ms 15220 KiB
testcase_18 AC 18 ms 3064 KiB