Square Words
TopCoder TCO2017 India
Time Limit: 0.1s, Memory Limit: 64MiB
Ели има стринг S състоящ се от главни букви от Английската азбука ('A'-'Z'). Момичето може веднъж да замени всички срещания на дадена буква с друга буква (например всички 'T'-та с 'C'-та). Ели дефинира "цена" на резултатната дума като сбора от квадратите на срещанията на всяка буква в думата.

Например, нека S = "TOPCODERROCKS". Думата съдържа едно 'T', три 'O'-та, едно 'P', две 'C'-та, едно 'D', едно 'E', две 'R'-та, едно 'K', и едно 'S'. Ако момичето реши да не заменя буква, цената на думата би била 1*1 + 3*3 + 1*1 + 2*2 + 1*1 + 1*1 + 2*2 + 1*1 + 1*1 = 23. Ако момичето реши да замени 'R'-тата с 'S'-та, тя би получила "TOPCODESSOCKS" с цена 27. За да получи максимална цена, обаче, тя може да промени 'C'-тата в 'O'-та, получавайки "TOPOODERROOKS" с цена 35.

Сега момичето има списък с определен брой думи и се чуди каква е максималната цена, която може да се получи за всяка от тях. За да не прави това на ръка, тя ви е помолила да напишете програма, която по даден стринг S връща максималната цена на думата след най-много една замяна на буква с друга.
Вход
На стандартния вход ще бъде зададен стрингът S.
Изход
На стандартния изход изведете едно цяло число – максималната цена, която може да бъде постигната.
Ограничения
  • 1 ≤ |S| ≤ 50
Примерен Вход Примерен Изход
TOPCODERROCKS35
WITHOUTITIMJUSTESPR65
ROVERWANDERERNOMADVAGABOND108
Мрън!