# your code goes here
class Solution:
def numOfSubsequences(self, s: str) -> int:
n = len(s)
preL = [0] * (n + 2)
preLC = [0] * (n + 2)
l = 0
lc = 0
countLCT = 0
for i in range(n):
if s[i] == 'L':
l += 1
elif s[i] == 'C':
lc += l
elif s[i] == 'T':
countLCT += lc
preL[i + 1] = l
preLC[i + 1] = lc
sufT = [0] * (n + 5)
sufCT = [0] * (n + 5)
t = 0
ct = 0
for i in range(n - 1, -1, -1):
if s[i] == 'T':
t += 1
elif s[i] == 'C':
ct += t
sufT[i + 1] = t
sufCT[i + 1] = ct
answer1 = sufCT[1] + countLCT
answer2 = preLC[n] + countLCT
answer3 = 0
for i in range(1, n + 1):
answer3 = max(answer3, preL[i] * sufT[i + 1])
return max(answer1, answer2, answer3 + countLCT)
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCmNsYXNzIFNvbHV0aW9uOgogICAgZGVmIG51bU9mU3Vic2VxdWVuY2VzKHNlbGYsIHM6IHN0cikgLT4gaW50OgogICAgICAgIG4gPSBsZW4ocykKICAgICAgICAKICAgICAgICBwcmVMID0gWzBdICogKG4gKyAyKQogICAgICAgIHByZUxDID0gWzBdICogKG4gKyAyKQogICAgICAgIAogICAgICAgIGwgPSAwCiAgICAgICAgbGMgPSAwCiAgICAgICAgY291bnRMQ1QgPSAwCgogICAgICAgIGZvciBpIGluIHJhbmdlKG4pOgogICAgICAgICAgICBpZiBzW2ldID09ICdMJzoKICAgICAgICAgICAgICAgIGwgKz0gMQogICAgICAgICAgICBlbGlmIHNbaV0gPT0gJ0MnOgogICAgICAgICAgICAgICAgbGMgKz0gbAogICAgICAgICAgICBlbGlmIHNbaV0gPT0gJ1QnOgogICAgICAgICAgICAgICAgY291bnRMQ1QgKz0gbGMKICAgICAgICAgICAgcHJlTFtpICsgMV0gPSBsCiAgICAgICAgICAgIHByZUxDW2kgKyAxXSA9IGxjCiAgICAgICAgCiAgICAgICAgc3VmVCA9IFswXSAqIChuICsgNSkKICAgICAgICBzdWZDVCA9IFswXSAqIChuICsgNSkKICAgICAgICB0ID0gMAogICAgICAgIGN0ID0gMAoKICAgICAgICBmb3IgaSBpbiByYW5nZShuIC0gMSwgLTEsIC0xKToKICAgICAgICAgICAgaWYgc1tpXSA9PSAnVCc6CiAgICAgICAgICAgICAgICB0ICs9IDEKICAgICAgICAgICAgZWxpZiBzW2ldID09ICdDJzoKICAgICAgICAgICAgICAgIGN0ICs9IHQKICAgICAgICAgICAgc3VmVFtpICsgMV0gPSB0CiAgICAgICAgICAgIHN1ZkNUW2kgKyAxXSA9IGN0CgogICAgICAgIAogICAgICAgIGFuc3dlcjEgPSBzdWZDVFsxXSArIGNvdW50TENUCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgYW5zd2VyMiA9IHByZUxDW25dICsgY291bnRMQ1QKICAgICAgICAKICAgICAgIAogICAgICAgIGFuc3dlcjMgPSAwCiAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMSwgbiArIDEpOgogICAgICAgICAgICBhbnN3ZXIzID0gbWF4KGFuc3dlcjMsIHByZUxbaV0gKiBzdWZUW2kgKyAxXSkKICAgICAgICAKICAgICAgICByZXR1cm4gbWF4KGFuc3dlcjEsIGFuc3dlcjIsIGFuc3dlcjMgKyBjb3VudExDVCk=