여름 여행
면접 대비시간 제한3초메모리 제한1024 MB
이벤트 종류를 나타내는 문자열이 주어질 때, 길이가 2 이상이고 처음과 끝 문자가 서로 다르며 각각 부분 문자열 안에서 한 번만 나타나는 연속 부분 문자열의 개수를 센다.
문제
Leo는 여행사에 취직했다. 첫 업무는 이국적인 해외 도시로 떠나는 여름 여행을 준비하는 것이다. 여름철에는 그 도시에서 스포츠 경기, 콘서트, 해변 파티 등 여러 종류의 행사가 열린다. 어느 시점에도 정확히 하나의 행사가 진행된다. 같은 종류의 행사가 한 철에 여러 번 열릴 수도 있다.
Leo가 고객에게 제안하는 행사 일정은 마음대로 정할 수 없다. 회사는 일정이 소위 "좋은 일정"이어야 한다고 요구한다. 좋은 일정은 여름철에 연속하는 두 개 이상의 행사로 이루어진 구간이며, 첫 행사와 마지막 행사의 종류가 서로 다르고 그 구간 안에서 두 종류가 각각 유일해야 한다. 예를 들어 좋은 일정의 첫 행사가 해변 파티라면, 그 일정의 다른 행사는 해변 파티일 수 없다. 좋은 일정을 이루는 행사 종류에는 이 외의 제약이 없다.
여행을 준비하기 전에 Leo는 여름철에 열릴 행사 일정이 주어졌을 때 가능한 좋은 일정의 총 개수를 알고 싶어 한다.
입력
입력은 여름철 행사 종류의 나열을 나타내는 문자열 한 줄로 이루어진다. 모든 문자는 영어 소문자('a' - 'z')이며, 서로 다른 문자는 서로 다른 종류의 행사를 나타낸다. 문자열의 i번째 문자는 여름의 i번째 행사를 나타낸다. 문자열에는 공백이 없다.
입력 문자열의 길이는 2 이상 100 000 이하이다.
출력
주어진 여름철에 대해 존재하는 좋은 일정의 개수를 출력한다.