• محدودیت زمان: ۲ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

روش هافمن یک الگوریتم برای فشرده‌سازی براساس احتمال تکرار کلمات است. این روش به هر حرف یک رشته‌ی باینری (رشته‌ای از 0 و 1) متناظر می‌کند و به‌جای رشته‌ای از آن کلمات می‌توانیم از آن رشته‌ها استفاده کنیم.

نکته‌ی مهم در این فشرده‌سازی این است که برای هر رشته‌ی فشرده شده، فقط یک روش برای جایگذاری کلمات اصلی داشته باشد تا بازسازی متن اصلی ممکن باشد.

حال هافتو می‌خواد رشته‌های s1,s2,,sn,s_1, s_2, \dots, s_n, به‌جای کلمات قرار دهد اما مطمئن نیست که روش فشرده‌سازی او هم مثل هافم بدون ابهام است.

از شما می‌خواهیم برنامه‌ای بنویسید که بررسی کنید آیا این رشته‌ها برای فشرده‌سازی بدون ابهام هستند و یا طول کوتاه‌ترین رشته‌ای که اگر با آن بازسازی کنیم ابهام پیش می‌آید را چاپ کنید.

ورودی

در سطر اول ورودی، عدد صحیح و مثبت nn آمده که تعداد رشته‌ها را نشان می‌دهد. 1n10001 \leq n \leq 1000

در nn سطر بعدی، در هر سطر یک رشته داده می‌شود.

1si161 \leq |s_i | \leq 16

خروجی

درصورتی که این کلمات ابهامی ندارند، رشته‌ی YES و در غیر این صورت رشته‌ی NO را در سطر اول و در سطر بعدی، طول کوتاه‌ترین رشته‌ی دودویی که برای این متناظر کردن ابهام دارد را چاپ کنید.

مثال‌ها

ورودی نمونه ۱

3
010
101
01
Plain text

خروجی نمونه ۱

NO
6
Plain text

ورودی نمونه ۲

5
1
10
100
1000
10000
Plain text

خروجی نمونه ۲

YES
Plain text

ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.