提出 #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 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |