Sətirin təhlili
Proqramların və sistemlərin inkişafında, internetdə axtarışla məşğul olan və ifadələrin təhlilinə cavabdeh olan proqram komponentləri mühüm rol oynayır. Axtarış sistemlərinin mövcud olduğu müddət ərzində bu sinif məsələlərini həll edən çoxlu müxtəlif alqoritmlər icad edilmişdir. Onlar bir-birindən iş vaxtı, yazılma mürəkkəbliyi və istifadə olunan resursların miqdarı ilə fərqlənirlər.
Gəlin, bəzi sözlərdən ibarət olan bir sırağın müəyyən bir lüğətə aid olub-olmadığını yoxlamaq məsələsini nəzərdən keçirək. Bu məsələnin həllini təmin edən ən sadə alqoritmlərdən biri acgöz alqoritmdir. Hər dəfə sıradan lüğətdə ayrıca bir söz kimi mövcud olan maksimum prefiks çıxarılır. Lüğət sözlərinin konkatenasiyası olan kifayət qədər böyük bir sırağda, bu alqoritm uğurla işini tamamlayır və sırağı sözlərə ayırır. Bundan əlavə, bu alqoritm çox sadədir. Lakin, elə sıraqlar da mövcuddur ki, bu alqoritm onlarda səhv nəticə verəcəkdir. Məsələn, əgər lüğət kimi ingilis dilində mövcud olan bütün sözlərin siyahısını götürsək, "workingrass" sırağı düzgün tanınmayacaq, çünki əvvəlcə ondan "working" prefiksi çıxarılacaq və sonra qalan "rass" hissəsini lazımi sözlərə ayırmaq mümkün olmayacaq. Eyni zamanda, bu sırağı "work", "in" və "grass" sözlərinin konkatenasiyası kimi təqdim etmək olar.
Müxtəlif proqramların inkişafında ingilis dili lüğəti ilə işləmək həmişə lazım olmur. Bəzən lüğətlər kifayət qədər spesifikdir və təsvir olunan alqoritm lüğət sözlərinin konkatenasiyası olan bütün mümkün sıraqları düzgün ayıracaq. Sizdən tələb olunur ki, sözlər toplusunun (lüğətin) belə olub-olmadığını yoxlayasınız və əgər belə deyilsə, lüğət sözlərinə ayırmanın mövcud olduğu, lakin təsvir olunan alqoritmlə tapılmayacaq bir sırağa nümunə gətirin. Əgər belə nümunələr bir neçə varsa, ən qısa olanını tapın, yəni uzunluğu digərlərindən çox olmayanını. Əgər belə bir neçə varsa, istənilən birini çıxarın.
Giriş verilənləri
Birinci sətir bir tam ədəd n (1 ≤ n ≤ 250) - lüğətdəki sözlərin sayını ehtiva edir. Növbəti n sətirdə lüğətdə olan sözlər sadalanır. Hər bir söz boş deyil və yalnız kiçik latın əlifbası hərflərindən ibarətdir. Hər bir sözün uzunluğu 500 simvoldan çox deyil.
Çıxış verilənləri
Əgər şərtlərdə təsvir olunan tələblərə cavab verən sıraqlar mövcuddursa, onların uzunluğu digərlərindən çox olmayan istənilən birini çıxarın. Çıxardığınız sıra yalnız kiçik latın əlifbası simvollarından ibarət olmalıdır. Əks halda "Good vocabulary!" çıxarın.