QOJ.ac

QOJ

時間限制: 2.0 s 記憶體限制: 256 MB 總分: 100

#18901. Gói phần mềm

统计

Để cài đặt các gói trên hệ điều hành Vinux, Vasya sử dụng Vum, trình quản lý gói hiện đại.

Mỗi gói có một số phiên bản có thể cài đặt. Mỗi ứng dụng chỉ có thể được cài một phiên bản tại một thời điểm. Ta gọi một phiên bản cụ thể của một ứng dụng cụ thể là một gói. Vì những phiên bản cụ thể của các ứng dụng khác nhau có thể không tương thích với nhau, Vum có khái niệm xung đột. Mỗi xung đột là một tập hợp các gói mà trong đó chỉ có thể cài nhiều nhất một gói. Cố gắng cài nhiều hơn một gói trong danh sách xung đột sẽ khiến hệ thống bị sập, và Vasya không muốn điều đó.

Các phiên bản khác nhau của một ứng dụng có thể xung đột hoặc không. Một xung đột có thể chứa nhiều phiên bản của cùng một ứng dụng, kể cả tất cả các phiên bản của ứng dụng đó.

Do hệ thống mô tả xung đột trong Vum khá thô sơ, mỗi gói chỉ có thể xuất hiện trong một xung đột.

Vasya muốn cài $N$ ứng dụng khác nhau mà không làm sập Vinux. Anh phải chọn các phiên bản ứng dụng mà không vi phạm những quy tắc trên, nhưng các thuật toán giải quyết phụ thuộc bằng vét cạn của Vum không xử lý nổi nhiệm vụ này. Vasya nhờ bạn giúp đỡ với trình quản lý gói của mình.

Dữ liệu vào

Dòng đầu tiên của tệp vào chứa số nguyên $N$ — số ứng dụng Vasya muốn cài ($1 \le N \le 200$).

$N$ dòng tiếp theo mô tả các ứng dụng, bao gồm danh sách phiên bản của chúng. Mô tả một ứng dụng gồm các trường sau, phân cách bằng dấu cách:

  • tên ứng dụng — một xâu chữ cái Latinh viết thường, dài từ 1 đến 10 ký tự;
  • số phiên bản — một số nguyên dương không vượt quá $1\,000$;
  • các số hiệu phiên bản — các số nguyên dương được liệt kê theo thứ tự tăng dần.

Các số hiệu ứng dụng không vượt quá $100\,000$. Tất cả tên ứng dụng đều khác nhau.

Dòng tiếp theo chứa số $K$ — số xung đột ($0 \le K \le 500$).

$K$ dòng tiếp theo mô tả các xung đột. Mô tả một xung đột bắt đầu bằng số nguyên dương $T$ — số gói trong xung đột. Sau đó là $T$ gói phân cách bằng dấu cách. Với mỗi gói, tên ứng dụng được cho trước, tiếp theo là số hiệu phiên bản.

Đảm bảo rằng các gói được liệt kê trong các xung đột không bao giờ lặp lại và mọi phiên bản đều được nhắc đến trong mô tả ứng dụng.

Dữ liệu ra

Nếu không thể cài tất cả $N$ ứng dụng mà không có xung đột, dòng duy nhất của tệp ra phải chứa từ No. Nếu có thể, dòng đầu tiên phải chứa từ Yes, còn dòng thứ hai phải liệt kê các số hiệu phiên bản cần cài để đạt được điều đó, phân cách bằng dấu cách.

Các phiên bản của $N$ ứng dụng phải được in theo đúng thứ tự mô tả ứng dụng trong tệp vào. Nếu có nhiều cách chọn ứng dụng hợp lệ, hãy in một cách bất kỳ.

Ví dụ

Dữ liệu vào 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

Dữ liệu ra 1

Yes
2 8 2

Dữ liệu vào 2

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

Dữ liệu ra 2

No

Ghi chú

Ví dụ đầu tiên chứa hai xung đột. Xung đột thứ nhất ngăn cài đồng thời phiên bản thứ 3 của vim và phiên bản thứ 8 của nano. Xung đột thứ hai quy định chỉ được cài một trong các gói sau — phiên bản thứ 1 của vim, thứ 5 của nano và thứ 2 của vim — hoặc không cài gói nào. Các lời giải đúng là:

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

Trong ví dụ thứ hai, có hai ứng dụng, mỗi ứng dụng chỉ có một phiên bản. Tuy nhiên, xung đột duy nhất cấm cài đồng thời cả hai ứng dụng.

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.