QOJ.ac

QOJ

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

#18901. แพ็กเกจ

İstatistikler

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

หมายเหตุ

ตัวอย่างแรกมีความขัดแย้งสองรายการ รายการแรกห้ามติดตั้งเวอร์ชันที่ 3 ของ vim และเวอร์ชันที่ 8 ของ nano พร้อมกัน รายการที่สองระบุว่าติดตั้งได้เพียงหนึ่งในแพ็กเกจต่อไปนี้ — เวอร์ชันที่ 1 ของ vim เวอร์ชันที่ 5 ของ nano และเวอร์ชันที่ 2 ของ 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.