Module: Dinamik Programlamada Kalıplar


Problem

4 /7


Dize sıkıştırma

Problem

Chloe, arkadaşına bir mektup yazmak ister. Harf - küçük Latin harflerinden oluşan s dizisi.
Ne yazık ki, Chloe mektubu yazmaya başlar başlamaz, mektubun çok uzun olduğunu ve tamamını yazmanın çok uzun zaman alacağını fark etti. Bu yüzden s dizisinin kendisi yerine sıkıştırılmış bir sürümünü yazmak istiyor.

s — dizisinin sıkıştırılmış versiyonu c1, s1, c2, s2 dizilerinin dizisi,  ..., ck, sk, burada ci — ai (baştaki sıfırlar olmadan) ve si'nin ondalık gösterimi — küçük Latin harflerinden oluşan bir dizi. Chloe s1 dizesini tam olarak bir1 kez yazarsa, s2 tam olarak bir2 kez yazar ve böylece üzerinde, s.
dizesini üretecektir. Sıkıştırılmış versiyonun uzunluğu |c1| + |s1| + |c2|  +  |s2|... |ck| + |sk|. Chloe, tüm sıkıştırılmış sürümler arasında en kısa uzunluğa sahip olanı seçmek istiyor. Chloe'nin mümkün olan en kısa uzunluğu bulmasına yardım edin.

Giriş:
Girişin tek satırı, küçük Latin harflerinden (1 ≤ |s| ≤ 5000) oluşan bir s dizisi içerir.

Çıktı:
Tek bir tamsayı yazdır — s.
dizisinin sıkıştırılmış sürümünün minimum uzunluğu
Örnekler:
 

Açıklamalar:
İlk örnekte, Chloe şu sürümü seçecektir: c1 — 10, s1 — a.
İkinci örnekte, Chloe şu sürümü seçecektir: c1 — 1, s1 — abcab.
Üçüncü örnekte, Chloe şu sürümü seçecektir: c1 — 2, s1 — c, c2 — 1, s2 — z, c3 — 4, s3 — ab.
 
Giriş Çıktı
aaaaaaaaa 3
abcab 6
cczabababab 7