좋은 부분 문자열
시간 제한2초메모리 제한512 MB
a와 b로 이루어진 문자열에서 서로 겹치지 않는 두 위치에 나타나는 서로 다른 부분 문자열의 개수를 센다.
문제
a와 b로만 이루어진 문자열 가 있다. 의 부분 문자열 가 안에서 서로 겹치지 않게 두 번 이상 나타나면 는 좋은 부분 문자열이다. 다시 말해 가 번째 위치와 번째 위치에서 시작해 나타나고 가 의 길이보다 크거나 같은 두 위치 가 있으면, 는 좋은 부분 문자열이다.
가 aaaabb이면 좋은 부분 문자열은 a, aa, b이다. aaa는 에 두 번 나타나지만 두 등장이 겹치므로 좋은 부분 문자열이 아니다.
문자열 가 주어졌을 때, 서로 다른 좋은 부분 문자열의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 문자열 가 주어진다. 는 a와 b로만 이루어지고, 길이는 1 이상 100,000 이하이다.
출력
첫째 줄에 의 서로 다른 좋은 부분 문자열의 개수를 출력한다.