عمو که فردی بسیار پول پرست است، جهت صرفهجویی در تعداد حروف پیامکهایش به فشردهسازی رشتهها روی آورده.
روش عمو برای فشردهسازی به این صورت است:
او در ابتدا جایگشتی از اعداد ۱, ۲, ..., انتخاب میکند. سپس رشتهی خود را به دسته های پشت سر هم حرفی تقسیم میکند (طول رشته باید به بخشپذیر باشد) و روی هر دسته از حروف، جایگشت خود را اعمال میکند. سپس رشتهی بدست آمده را بوسیلهی روش RLE که در ادامه توضیح داده خواهد شد، فشرده میکند.
اعمال جایگشت روی یک دسته از حرف یعنی حرف م را در جایگاه اول قرار داده، حرف م را در جایگاه دوم و... برای مثال اعمال جایگشت {۲ ,۴ ,۱ ,۳} روی رشتهی آن را تبدیل به میکند. اعمال این جایگشت با دسته دسته کردن روی رشتهی ، رشتهی را نتیجه میدهد.
رشتهی جایگشت داده شده توسط RLE (یا run-length encoding) فشرده میشود. جهت جلوگیری از محاسبات پیچیده، طول رشتهی فشردهشده را برابر تعداد گروه حرفهای برابر پشت سر هم درنظر میگیریم. برای مثال طول رشتهی پس از فشردهشدن توسط RLE را ۴ در نظر میگیریم. (یک گروه ۲ حرفی a، یک گروه تک حرفی b، یک گروه تک حرفی c و یک گروه ۲ حرفی a)
عمو میخواهد پیامکی را با روش گفته شده فشرده کرده و بفرستد. واضح است که طول رشتهی نهایی به جایگشت انتخابشده مربوط است. شما با داشتن متن پیامک عمو، جایگشتی انتخاب کنید که پس از فشردهسازی بوسیلهی آن طول پیامک کمینه شود و این طول کمینه را خروجی دهید.
سطر اول تنها شامل عدد است.
در سطر بعدی پیامک عمو بصورت یک رشته از حروف کوچک انگلیسی به طول حداکثر ۵۰۰۰۰ آمده است.
در تنها سطر خروجی یک عدد چاپ کنید که برابر کمترین طول ممکن برای پیامک عمو است.
در این مثال با انتخاب جایگشت {۲ ,۳ ,۴ ,۱} نتیجهی بهینه بدست میآید.