QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 256 MB Total points: 100

#18901. Paket

Statistics

Untuk memasang paket di sistem operasi Vinux, Vasya menggunakan Vum, pengelola paket modern.

Setiap paket memiliki beberapa versi yang dapat dipasang. Hanya satu versi suatu aplikasi yang dapat dipasang pada satu waktu. Kita sebut suatu versi tertentu dari aplikasi tertentu sebagai paket. Karena versi tertentu dari aplikasi berbeda dapat saling tidak kompatibel, ada konsep konflik dalam Vum. Setiap konflik adalah himpunan paket yang paling banyak satu paketnya boleh dipasang. Mencoba memasang lebih dari satu paket dari daftar konflik menyebabkan sistem rusak, dan Vasya tidak menginginkannya.

Versi-versi berbeda dari suatu aplikasi dapat berkonflik atau tidak. Satu konflik dapat mencakup beberapa versi suatu aplikasi, termasuk semua versinya.

Karena sistem deskripsi konflik dalam Vum cukup sederhana, setiap paket hanya dapat tercantum dalam satu konflik.

Vasya ingin memasang $N$ aplikasi berbeda tanpa merusak Vinux miliknya. Ia harus memilih versi aplikasi tanpa melanggar aturan di atas, tetapi algoritma penyelesaian dependensi menyeluruh milik Vum tidak sanggup menangani tugas ini. Vasya meminta bantuan untuk pengelola paketnya.

Masukan

Baris pertama berkas masukan berisi bilangan bulat $N$ — jumlah aplikasi yang ingin Vasya pasang ($1 \le N \le 200$).

$N$ baris berikutnya memberikan deskripsi aplikasi beserta daftar versinya. Deskripsi suatu aplikasi terdiri dari bidang-bidang berikut yang dipisahkan spasi:

  • nama aplikasi — string huruf Latin kecil sepanjang 1 hingga 10 karakter;
  • jumlah versi — bilangan bulat positif paling besar $1\,000$;
  • nomor versi — bilangan bulat positif yang dicantumkan dalam urutan menaik.

Nomor aplikasi paling besar $100\,000$. Semua nama aplikasi berbeda.

Baris berikutnya berisi bilangan $K$ — jumlah konflik ($0 \le K \le 500$).

$K$ baris berikutnya mendeskripsikan konflik. Deskripsi konflik diawali bilangan bulat positif $T$ — jumlah paket dalam konflik. Kemudian dicantumkan $T$ paket yang dipisahkan spasi. Untuk setiap paket, nama aplikasi diberikan terlebih dahulu, diikuti nomor versinya.

Dijamin bahwa paket-paket dalam konflik tidak pernah berulang, dan semua versi disebutkan dalam deskripsi aplikasi.

Keluaran

Jika tidak mungkin memasang seluruh $N$ aplikasi tanpa konflik, satu-satunya baris berkas keluaran harus berisi kata No. Jika mungkin, baris pertama harus berisi kata Yes, dan baris kedua harus mencantumkan nomor-nomor versi yang harus dipasang untuk mewujudkannya, dipisahkan spasi.

Versi untuk $N$ aplikasi harus dicetak dengan urutan yang sama seperti deskripsi aplikasi dalam berkas masukan. Jika ada beberapa cara memilih aplikasi yang mungkin, cetak salah satunya.

Contoh

Masukan 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

Keluaran 1

Yes
2 8 2

Masukan 2

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

Keluaran 2

No

Catatan

Contoh pertama mengandung dua konflik. Konflik pertama mencegah pemasangan versi ketiga vim dan versi kedelapan nano secara bersamaan. Konflik kedua menyatakan bahwa hanya satu dari paket berikut yang boleh dipasang — versi pertama vim, versi kelima nano, dan versi kedua vim — atau tidak satu pun. Solusi yang benar adalah sebagai berikut:

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

Dalam contoh kedua ada dua aplikasi, masing-masing dengan satu versi. Namun, satu-satunya konflik melarang pemasangan kedua aplikasi secara bersamaan.

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.