/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
System.
out.
println("LCT count after one insertion is "+ lctCount
(s
)); }
static int lctCount
(String s
){ int n = s.length();
long[] prefixL = new long[n];
long[]prefixLC = new long[n];
long l = 0, lc = 0, lctCount = 0;
for(int i=0;i<n;i++){
char c = s.charAt(i);
if(c == 'L'){
l++;
}
if(c == 'C'){
lc+=l;
}
if(c == 'T'){
lctCount += lc;
}
prefixL[i] = l;
prefixLC[i] = lc;
}
long[]sufixT = new long[n];
long[]sufixTC = new long[n];
long t = 0,tc = 0;
for(int i=n-1;i>=0;i--){
char c = s.charAt(i);
if( c == 'T'){
t++;
}
if( c == 'C'){
tc+=t;
}
sufixT[i] = t;
sufixTC[i] = tc;
}
long answer1 = lctCount+sufixTC[0];
long answer2 = lctCount+prefixLC[n-1];
long answer3 = 0;
for(int i=0;i<n-1;i++){
answer3
= Math.
max(answer3, prefixLC
[i
]*sufixT
[i
+1]); }
answer3
= Math.
max(answer3,
Math.
max(answer1,answer2
)); return (int)answer3;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQlTdHJpbmcgcyA9ICJMQ0NUIjsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIkxDVCBjb3VudCBhZnRlciBvbmUgaW5zZXJ0aW9uIGlzICIrIGxjdENvdW50KHMpKTsKCX0KCXN0YXRpYyBpbnQgbGN0Q291bnQoU3RyaW5nIHMpewoJCWludCBuID0gcy5sZW5ndGgoKTsKCQlsb25nW10gcHJlZml4TCA9IG5ldyBsb25nW25dOwoJCWxvbmdbXXByZWZpeExDID0gbmV3IGxvbmdbbl07CgkJbG9uZyBsID0gMCwgbGMgPSAwLCBsY3RDb3VudCA9IDA7CgkJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJCWNoYXIgYyA9IHMuY2hhckF0KGkpOwoJCQlpZihjID09ICdMJyl7CgkJCQlsKys7CgkJCX0KCQkJaWYoYyA9PSAnQycpewoJCQkJbGMrPWw7CgkJCX0KCQkJaWYoYyA9PSAnVCcpewoJCQkJbGN0Q291bnQgKz0gbGM7CgkJCX0KCQkJcHJlZml4TFtpXSA9IGw7CgkJCXByZWZpeExDW2ldID0gbGM7CgkJfQoJCWxvbmdbXXN1Zml4VCA9IG5ldyBsb25nW25dOwoJCWxvbmdbXXN1Zml4VEMgPSBuZXcgbG9uZ1tuXTsKCQlsb25nIHQgPSAwLHRjID0gMDsKCQlmb3IoaW50IGk9bi0xO2k+PTA7aS0tKXsKCQkJY2hhciBjID0gcy5jaGFyQXQoaSk7CgkJCWlmKCBjID09ICdUJyl7CgkJCQkKCQkJCXQrKzsKCQkJfQoJCQlpZiggYyA9PSAnQycpewoJCQkJdGMrPXQ7CgkJCX0KCQkJc3VmaXhUW2ldID0gdDsKCQkJc3VmaXhUQ1tpXSA9IHRjOwoJCX0KCQlsb25nIGFuc3dlcjEgPSBsY3RDb3VudCtzdWZpeFRDWzBdOwoJCWxvbmcgYW5zd2VyMiA9IGxjdENvdW50K3ByZWZpeExDW24tMV07CgkJbG9uZyBhbnN3ZXIzID0gMDsKCQlmb3IoaW50IGk9MDtpPG4tMTtpKyspewoJCQlhbnN3ZXIzID0gTWF0aC5tYXgoYW5zd2VyMywgcHJlZml4TENbaV0qc3VmaXhUW2krMV0pOwoJCX0KCQlhbnN3ZXIzID0gTWF0aC5tYXgoYW5zd2VyMyxNYXRoLm1heChhbnN3ZXIxLGFuc3dlcjIpKTsKCQlyZXR1cm4gKGludClhbnN3ZXIzOwoJfQp9