Buggy python submission (verdict: Time Limit Exceeded):
# RRL
# 111
# 021
# 012
# 021 ...
# 1e5 1e5 だけどもしかしたら通るかも...
s = input()
children = [1] * len(s)
for i in range(int(1e5)):
    new_children = [0] * len(s)
    for j in range(len(s)):
        if s[j] == 'R':
            new_children[j+1] += children[j]
        else:
            new_children[j-1] += children[j]
    children = new_children[:]
print(' '.join(map(str, children)))

Fixed submission:
# RL
# 0, 11
# 1, 11
# 2, 11
# 3. 11
# 4, 11 1回で収束して以降は同じ

# RRL
# 0, 111
# 1, 021
# 2, 012
# 3. 021
# 4, 012 1回で収束して以降は振動する


# RRLL
# 0, 1111
# 1, 0220
# 2, 0220
# 3, 0220
# 4, 0220 1回で収束して以降は振動(差分0だけど)

# RRRLL
# 0, 11111
# 1, 01220
# 2, 00320
# 3, 00230
# 4, 0033000 2回で収束して以降は振動

# RRLLL
# 0, 11111
# 1, 02210
# 2, 02300
# 3, 03200
# 4, 02300 2回で収束して以降は振動

# RRRLLL
# 0, 111111
# 1, 012210
# 2, 003300
# 3, 003300
# 4, 0033000 2回で収束して以降は振動

# RRRRRR...RLLL....L の時、max(len(R), len(L)) - 1回で 0, 0, 0,len(R), len(L), 0, 0, 0, に収束してそう

# RR|LLL
# ab|cde

#  a|be
#  c|d

#  b|a
#  d|e
#   |c
# 以降振動

# 境界から距離が奇数のRは左、偶数は右, RRLLL ->   01100
# 境界から距離が奇数のLは右、偶数は左, RRLLL -> + 01200
#                                               = 02300
import math
s = input()
rrr = [0] * len(s)
lll = [0] * len(s)
ct = 0
for i in range(len(s)):
    if s[i] == 'R':
        ct += 1
    elif ct != 0:
        rrr[i-1] = math.ceil(ct/2)
        rrr[i] = math.floor(ct/2)
        ct = 0
s = s[::-1]
for i in range(len(s)):
    if s[i] == 'L':
        ct += 1
    elif ct != 0:
        lll[i-1] = math.ceil(ct/2)
        lll[i] = math.floor(ct/2)
        ct = 0
lll = lll[::-1]
#print(s[::-1])
#print(rrr)
#print(lll)
print(' '.join(map(str, [r+l for (r,l) in zip(rrr, lll)])))

Buggy python submission (verdict: Time Limit Exceeded):
# RRL
# 111
# 021
# 012
# 021 ...
# 1e5 1e5 だけどもしかしたら通るかも...
s = input()
children = [1] * len(s)
for i in range(int(1e5)):
    new_children = [0] * len(s)
    for j in range(len(s)):
        if s[j] == 'R':
            new_children[j+1] += children[j]
        else:
            new_children[j-1] += children[j]
    children = new_children[:]
print(' '.join(map(str, children)))

Fixed submission:
# RL
# 0, 11
# 1, 11
# 2, 11
# 3. 11
# 4, 11 1回で収束して以降は同じ

# RRL
# 0, 111
# 1, 021
# 2, 012
# 3. 021
# 4, 012 1回で収束して以降は振動する


# RRLL
# 0, 1111
# 1, 0220
# 2, 0220
# 3, 0220
# 4, 0220 1回で収束して以降は振動(差分0だけど)

# RRRLL
# 0, 11111
# 1, 01220
# 2, 00320
# 3, 00230
# 4, 0033000 2回で収束して以降は振動

# RRLLL
# 0, 11111
# 1, 02210
# 2, 02300
# 3, 03200
# 4, 02300 2回で収束して以降は振動

# RRRLLL
# 0, 111111
# 1, 012210
# 2, 003300
# 3, 003300
# 4, 0033000 2回で収束して以降は振動

# RRRRRR...RLLL....L の時、max(len(R), len(L)) - 1回で 0, 0, 0,len(R), len(L), 0, 0, 0, に収束してそう

# RR|LLL
# ab|cde

#  a|be
#  c|d

#  b|a
#  d|e
#   |c
# 以降振動

# 境界から距離が奇数のRは左、偶数は右, RRLLL ->   01100
# 境界から距離が奇数のLは右、偶数は左, RRLLL -> + 01200
#                                               = 02300
import math
s = input()
rrr = [0] * len(s)
lll = [0] * len(s)
ct = 0
for i in range(len(s)):
    if s[i] == 'R':
        ct += 1
    elif ct != 0:
        rrr[i-1] = math.ceil(ct/2)
        rrr[i] = math.floor(ct/2)
        ct = 0
s = s[::-1]
for i in range(len(s)):
    if s[i] == 'L':
        ct += 1
    elif ct != 0:
        lll[i-1] = math.ceil(ct/2)
        lll[i] = math.floor(ct/2)
        ct = 0
lll = lll[::-1]
#print(s[::-1])
#print(rrr)
#print(lll)
print(' '.join(map(str, [r+l for (r,l) in zip(rrr, lll)])))