Zalagaonica
시간 제한3초메모리 제한1024 MB
문자열을 연속한 비어 있지 않은 조각으로 자르고, 각 조각은 서로 다른 문자의 개수 d에 따라 C[d]를 벌 때 얻을 수 있는 최대 금액을 구한다.
문제
Dođe Stjepan jednog utorka kod Ricka u Pawn Stars zalagaonicu držeći papirić u ruci na kojem piše jedna riječ i pita Ricka koliko kuna može dobiti za taj papirić. Kaže mu Rick: “Za taj papirić, kao i za svaki drugi koji doneseš, možeš dobiti C[x] kuna gdje je x broj različitih slova napisanih na papiriću.”
Nakon što je to čuo, Stjepan brzo shvati da može zaraditi mnogo novca ako svojim škarama, koje uvijek nosi sa sobom, razreže papirić na više dijelova i onda proda svaki dio posebno. Jedino što je važno poslije rezanja je da svaki papirić sadržava barem jedno slovo i da svaki papirić sadržava uzastopna slova riječi koja je bila napisana na početku. Od svog tog ushićenja, on nije sposoban izračunati koliko najviše novaca može zaraditi pa moli tebe da napišeš program koji to ispisuje.
입력
U prvom je retku prirodan broj (), broj različitih slova napisanih na papiriću.
U drugom retku je niz koji sadrži prirodnih brojeva manjih od .
U trećem retku je riječ () koja je na početku napisana na papiriću. Riječ će sadržavati samo mala slova engleske abecede.
출력
U prvi redak ispiši prirodan broj, odgovor na pitanje iz teksta zadatka.
힌트
Opis prvog probnog primjera: Optimalno je razrezati papirić na pola riječi (abc|bca). Tako se dobiju dva papirića koja će Stjepan odnijeti Ricku.
Opis drugog probnog primjera: Optimalno je razrezati papirić na (a|a|ab|b|ba|a|ab|b|ba|a|a)
Opis trećeg probnog primjera: Optimalno je razrezati papirić na (ab|ab|ab|ab|a).