QOJ.ac

QOJ

Süre Sınırı: 2.0 s Bellek Sınırı: 256 MB Toplam puan: 100

#18901. Пакет

İstatistikler

Для встановлення пакетів в ОС Vinux Vasya використовує Vum, сучасний менеджер пакетів.

Кожен пакет має кілька версій, які можна встановити. Одночасно можна встановити лише одну версію застосунку. Назвімо конкретну версію конкретного застосунку пакетом. Оскільки конкретні версії різних застосунків можуть бути несумісними між собою, у Vum існують конфлікти. Кожен конфлікт — це множина пакетів, з якої можна встановити не більше одного пакета. Спроба встановити більше одного пакета зі списку конфлікту призводить до збою системи, а Vasya цього не хоче.

Різні версії будь-якого застосунку можуть конфліктувати або не конфліктувати. До одного конфлікту можуть входити кілька версій застосунку, зокрема всі його версії.

Оскільки система опису конфліктів у Vum досить примітивна, кожен пакет може бути вказаний лише в одному конфлікті.

Vasya хоче встановити $N$ різних застосунків, не спричинивши збою свого Vinux. Він має обрати версії застосунків, не порушуючи наведених вище правил, але перебірні алгоритми розв'язання залежностей у Vum не справляються з цим завданням. Vasya просить допомогти з його менеджером пакетів.

Вхідні дані

Перший рядок вхідного файлу містить ціле число $N$ — кількість застосунків, які Vasya хоче встановити ($1 \le N \le 200$).

Наступні $N$ рядків містять описи застосунків зі списками їхніх версій. Опис застосунку складається з таких полів, розділених пробілами:

  • назва застосунку — рядок малих латинських літер завдовжки від 1 до 10 символів;
  • кількість версій — додатне ціле число, не більше за $1\,000$;
  • номери версій — додатні цілі числа, перелічені за зростанням.

Номери застосунків не перевищують $100\,000$. Усі назви застосунків різні.

Наступний рядок містить число $K$ — кількість конфліктів ($0 \le K \le 500$).

Наступні $K$ рядків описують конфлікти. Опис конфлікту починається з додатного цілого числа $T$ — кількості пакетів у конфлікті. Далі перелічено $T$ пакетів, розділених пробілами. Для кожного пакета наводиться назва застосунку, а потім номер версії.

Гарантується, що пакети, перелічені в конфліктах, ніколи не повторюються і всі версії згадані в описах застосунків.

Вихідні дані

Якщо неможливо встановити всі $N$ застосунків без конфліктів, єдиний рядок вихідного файлу має містити слово No. Якщо можливо, перший рядок має містити слово Yes, а другий — розділені пробілами номери версій, які потрібно для цього встановити.

Версії для $N$ застосунків треба вивести в тому самому порядку, у якому застосунки описані у вхідному файлі. Якщо існує кілька способів вибору застосунків, виведіть будь-який із них.

Приклади

Вхідні дані 1

3
vim 3 1 2 3
nano 2 5 8
python 2 2 3
2
2 vim 3 nano 8
3 vim 1 nano 5 vim 2

Вихідні дані 1

Yes
2 8 2

Вхідні дані 2

2
firefox 1 38
chrome 1 46
1
2 firefox 38 chrome 46

Вихідні дані 2

No

Примітка

Перший приклад містить два конфлікти. Перший забороняє одночасно встановити третю версію vim і восьму версію nano. Другий означає, що можна встановити лише один із таких пакетів — першу версію vim, п'яту версію nano та другу версію vim — або не встановлювати жодного. Правильні розв'язки такі:

  • 1 8 2
  • 1 8 3
  • 2 8 2
  • 2 8 3
  • 3 5 2
  • 3 5 3

У другому прикладі є два застосунки, кожен має лише одну версію. Проте єдиний конфлікт забороняє встановити обидва застосунки разом.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.