PivotOJ

Karaoke Compression

시간 제한: 10000ms메모리 제한: 1024MB출처: BAPC 2024BOJ 32605

문제

Next week, you will be hosting the Biannual Acoustic Popsong Convention. Of course, this convention also needs to include a karaoke night, featuring all your favourite acoustic pop songs! To impress all attendees, you have decided to prepare by learning the lyrics of all the songs by heart. But there is a problem: these lyrics are very long, so you will not have enough time left to learn all of this! However, you have noticed that a lot of the songs contain quite some repetitions. This gives you the idea of first compressing the lyrics, and then only learning the compressed version.

The compression scheme you will use works as follows. Let ss be the string to compress. You select exactly one nonempty substring tt of the lyrics, and replace as many occurrences of tt in ss as possible by a new character that did not occur in ss before. Call the result of this ss'. Now you only need to remember the substring tt and the compressed string ss'. You would like to know the minimal total length of these two strings, if you compress the lyrics in this manner.

As an example, consider the first sample case. In this case, you want to compress the lyrics "nanananananananabatman". If you replace the substring "na" by the character "X", the compressed string becomes "XXXXXXXXbatman". The total length of the substring and compressed string in this case is 2+14=162 + 14 = 16. However, if you instead choose to replace the substring "nana", then the compressed string is "XXXXbatman" and the total length is 4+10=144 + 10 = 14, which is optimal.

입력

The input consists of:

  • One line with a string ss (1s5000)(1 \leq |s| \leq 5000), the lyrics to compress. The string only consists of English lowercase letters (a-z).

출력

Output the minimal total length of the replaced substring and the compressed string.

예제

예제 1

입력
nanananananananabatman
출력
14

예제 2

입력
abcabd
출력
6

예제 3

입력
nocompression
출력
14
코드를 제출하려면 로그인하세요.