QOJ.ac

QOJ

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

#18901. 軟體套件

Statistics

Vasya 使用現代套件管理器 Vum,在 Vinux 作業系統中安裝套件。

每個套件都有數個可安裝的版本。同一個應用程式一次只能安裝其中一個版本。我們將某個應用程式的某個具體版本稱為一個套件。由於不同應用程式的某些版本可能互不相容,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 的第 3 個版本和 nano 的第 8 個版本。第二個衝突表示,vim 的第 1 個版本、nano 的第 5 個版本和 vim 的第 2 個版本中,只能安裝其中一個,或者一個也不安裝。正確的方案如下:

  • 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.