Processing math: 100%

المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:دوره ی انتخاب تیم:دوره ی ۳:سوال ۳

کوتاه‌ترین ابر رشته‌ی مشترک

رشته‌ی S=s1s2sk دنباله‌ای به طول k از نویسه‌های a تا z است. رشته‌ی T=t1t2tm زیر رشته‌ای از S=s1s2sk نامیده می‌شود، هرگاه (0im1)i وجود داشته باشد به طوری که به ازای هر 1jm داشته باشیم si+j=tj. در این صورت می‌گوییم S ابر رشته‌ی T‌ است.

مسئله به این صورت است: n رشته‌ی T1، T2،… و Tn که طول هر یک از آن‌ها حداکثر ۲ است داده شده‌اند. می‌خواهیم رشته‌ی S با کم‌ترین طول را پیدا کنیم که تمام Ti ها زیر رشته‌ی آن باشند (n100).

برنامه‌ای بنوسید که:

  1. رشته‌های T1، T2،… و Tn را از فایل ورودی بخواند و این رشته‌ها را در فایل خروجی بنویسد. در هر سطر فایل ورودی یک رشته نوشته شده است. ورودی ممکن است شامل لیست‌های مختلفی باشد که موارد مختلف با یک سطر خالی از هم جدا شده‌اند.
  2. رشته‌ی S را طوری به‌دست آورد که تمام رشته‌های T1، T2،… و Tn زیر رشته‌ی آن باشند و طول آن کمینه باشد. این رشته را در فایل خروجی بنویسید.

ورودي و خروجي نمونه

ورودي نمونه خروجي نمونه
ab
bc
ca
dc
b
k
ad

ab
ac
ad
e
fa
ab
bc
ca
dc
b
k
ad
The Shortest Common Superstring = abcadck
ab
ac
ad
e
fa‎ The Shortest Common Superstring = fabacade

ابزار صفحه