eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Діалог комп`ютерів

Діалог комп`ютерів

Три комп'ютери з'єднані мережею. Один з них - сервер, два інших - клієнти. На сервері є декілька файлів. Повні імена файлів, які складаються з двох частин (ім'я та розширення), різні. Обидва клієнти знають повні імена всіх файлів, що знаходяться на сервері. Сервер вибирає один зі своїх файлів і відсилає його ім'я одному з клієнтів, а розширення - іншому. Потім клієнти починають спілкуватись один з одним, намагаючись визначити, який файл було обрано сервером (вони хочуть взнати повне ім'я файлу). Проте клієнти змушені спілкуватись дуже обмеженим способом. Вони по черзі посилають повідомлення один одному, але можуть сказати лише, що не знають повного імені файлу. Якщо клієнт не знає повного імені вибраного файлу, він може послати іншому клієнту повідомлення, яке говорить: "Я не знаю повного імені файлу". Клієнти чергуються, посилаючи лише це повідомлення туди й назад. Так продовжується до тих пір, поки один з клієнтів не взнає повне ім'я файлу, або вони не вирішать припинити діалог. Клієнт, який отримав першу частину повного імені файлу, завжди чекає, що другий клієнт пошле перше повідомлення. Нехай Ви знаєте всі повні імена файлів, які знаходяться на сервері, і слухаєте розмову клієнтів. Базуючись на цій бесіді, Ви повинні визначити набір файлів, які могли бути вибрані сервером. Файли у цьому наборі називаються файлами-кандидатами. \InputFile У першому рядку знаходяться два цілих числа, \textit{\textbf{N}} і \textit{\textbf{M}}, відокремлені пропуском: \textit{\textbf{N}} - число файлів на сервері, \textit{\textbf{M}} - число повідомлень, посланих клієнтами, які намагаються визначити повне ім'я файлів. Кожен з наступних \textit{\textbf{N}} рядків містить одне повне ім'я файлу. Повне ім'я файлу задано у стилі, аналогічному формату \textbf{8.3 MS-DOS}. Кожне повне ім'я подано у форматі ім'я.розширення, де і ім'я, і розширенння складаються лише з великих латинських букв та цифр. Ім'я завжди має від одного до восьми символів. Розширення має до трьох символів і може бути порожнім. Якщо роширенння відсутнє, відокремлююча крапка може бути відсутня. Кожне повне ім'я файлу з'являється у вхідному файлі не більше одного разу. \textbf{1} ≤ \textit{\textbf{N}} ≤ \textbf{1000}, \textbf{1} ≤ \textit{\textbf{M}} ≤ \textbf{100}. \OutputFile У першому рядку виводиться число файлів-кандидатів для заданих набору файлів та числу повідомлень між клієнтами. Виводиться \textbf{0}, якщо файли-кандидати відсутні. У наступних рядках знаходяться повні імена файлів-кандидатів, кожне у окремому рядку. Вони повинні йти у тому ж порядку і у тому ж написанні, що і у вхідному файлі. Це означає, що, якщо відокремлюючу крапку у назві конкретного файлу було пропущено у вхідному файлі, то вона повинна бути пропущена і у виведенні, і навпаки. Файл не можна згадувати більше одного разу.
Ліміт часу 3 секунди
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
19 2
LICENCE.TMP
WIN32.LOG
FILEID.
PSTOTEXT.TXT
GSVIEW32.EXE
GSVIEW32.ICO
GSVIEWDE.HLP
LICENCE
GSVIEWEN.HLP
GSVW32DE.DLL
FILEID.TMP
GSVW32EN.DLL
PSTOTXT3.DLL
PSTOTXT3.EXE
GSV16SPL.EXE
GVWGS32.EXE
ZLIB32.DLL
PRINTER.INI
README.TXT
Вихідні дані #1
6
LICENCE.TMP
FILEID.
LICENCE
FILEID.TMP
PSTOTXT3.DLL
PSTOTXT3.EXE