روش هافمن یک الگوریتم برای فشردهسازی براساس احتمال تکرار کلمات است. این روش به هر حرف یک رشتهی باینری (رشتهای از 0
و 1
) متناظر میکند و بهجای رشتهای از آن کلمات میتوانیم از آن رشتهها استفاده کنیم.
نکتهی مهم در این فشردهسازی این است که برای هر رشتهی فشرده شده، فقط یک روش برای جایگذاری کلمات اصلی داشته باشد تا بازسازی متن اصلی ممکن باشد.
حال هافتو میخواد رشتههای بهجای کلمات قرار دهد اما مطمئن نیست که روش فشردهسازی او هم مثل هافم بدون ابهام است.
از شما میخواهیم برنامهای بنویسید که بررسی کنید آیا این رشتهها برای فشردهسازی بدون ابهام هستند و یا طول کوتاهترین رشتهای که اگر با آن بازسازی کنیم ابهام پیش میآید را چاپ کنید.
در سطر اول ورودی، عدد صحیح و مثبت آمده که تعداد رشتهها را نشان میدهد.
در سطر بعدی، در هر سطر یک رشته داده میشود.
درصورتی که این کلمات ابهامی ندارند، رشتهی YES
و در غیر این صورت رشتهی NO
را در سطر اول و در سطر بعدی، طول کوتاهترین رشتهی دودویی که برای این متناظر کردن ابهام دارد را چاپ کنید.