Module: الگوها در برنامه نویسی پویا


Problem

4 /7


فشرده سازی رشته

Problem

کلویی می خواهد برای دوستش نامه بنویسد. حرف - رشته s، متشکل از حروف کوچک لاتین.
متأسفانه، به محض اینکه کلوئی شروع به نوشتن نامه کرد، متوجه شد که نامه بسیار طولانی است و نوشتن کامل آن زمان بسیار زیادی طول می کشد. بنابراین او می خواهد یک نسخه فشرده از رشته s را به جای خود رشته بنویسد.

یک نسخه فشرده از رشته s — دنباله رشته های c1، s1، c2، s2،   ...، ck، sk، جایی که ci — نمایش دهدهی ai (بدون صفرهای ابتدایی)، و si — چند رشته از حروف کوچک لاتین. اگر کلویی رشته را s1 دقیقاً a1 بار بنویسد، سپس s2 دقیقاً a2 بار و به همین ترتیب در ، رشته s را تولید می کند.
طول نسخه فشرده شده |c1| + |s1| + |c2|  +  |s2|... |ck| + |sk|. از بین تمام نسخه های فشرده، Chloe می خواهد نسخه ای را با کوتاه ترین طول انتخاب کند. به کلویی کمک کنید کوتاه ترین طول ممکن را پیدا کند.

ورودی:
تنها خط ورودی شامل یک رشته s متشکل از حروف کوچک لاتین است (1 ≤ |s| ≤ 5000).

خروجی:
چاپ یک عدد صحیح — حداقل طول نسخه فشرده رشته s.

مثال:
  <بدن>
ورودی خروجی
aaaaaaaaa 3
abcab 6
cczabababab 7


توضیحات:
در مثال اول، Chloe نسخه زیر را انتخاب می کند: c1 — 10، s1 — الف.
در مثال دوم، Chloe نسخه زیر را انتخاب می کند: c1 — 1، s1 — abcab.
در مثال سوم، Chloe نسخه زیر را انتخاب می کند: c1 — 2، s1 — c، c2 — 1، s2 — z، c3 — 4، s3 — ab.