아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Секретный код

시간 제한2초메모리 제한1024 MB

요약
문자열 s에서 서로 다른 두 위치의 문자를 정확히 한 번 교환해 얻을 수 있는 서로 다른 문자열의 개수를 구한다.
난이도

보통10점 중 4점

유형
문자열, 해시맵, 조합론
정답자
아직 제출이 없습니다

문제

Джонни Инглиш почти что поймал Паскаля Соважа, но всё-таки в последний момент тот скрылся за дверью с кодовым замком.

К счастью, злодей обронил записку со строкой ss. Тщательно обдумав произошедшее, Джонни понял, что кодом к двери является строка tt, получающаяся из строки ss ровно одним обменом символов на двух различных позициях (на большее ума Паскаля Соважа явно не хватило бы).

Джонни не верит в удачу, поэтому ему необходимо знать сколько различных кодов ему придется ввести, чтобы гарантированно открыть дверь. Поскольку он не очень хорош в задачах на строки, он попросил вас посчитать это количество за него.

입력

В единственной строке входных данных задана строка ss (1≤∣s∣≤1051 \le |s| \le 10^5), состоящая из строчных латинских букв --- строка из записки, которую обронил Соваж.

출력

Выведите одно число --- количество кодов, которые надо ввести, чтобы гарантированно открыть дверь.

예제2

  1. 예제 1

    입력
    abacaba
    
    예상 출력
    15
    
  2. 예제 2

    입력
    aaaaaa
    
    예상 출력
    1