Sắp xếp biệt danh
Đề bài
Mô tả
Có người, người thứ có tên (first name) là và họ (last name) là . Mỗi người sẽ chọn đúng một trong hai xâu hoặc để làm biệt danh (handle) của mình. Gọi biệt danh đã chọn của người thứ là .
Cho một hoán vị của . Hỏi có cách chọn biệt danh cho tất cả mọi người sao cho các biệt danh tăng ngặt theo thứ tự từ điển đúng theo hoán vị này hay không, tức là:
trong đó phép so sánh là so sánh theo thứ tự từ điển.
Tất cả xâu được cho là đôi một phân biệt.
Dữ liệu vào
- Dòng đầu chứa số nguyên : số người.
- dòng tiếp theo, dòng thứ chứa hai xâu và : tên và họ của người thứ . Mỗi xâu chỉ gồm các chữ cái Latin thường.
- Dòng cuối chứa số nguyên phân biệt .
Dữ liệu ra
In ra YES nếu tồn tại cách chọn biệt danh thỏa mãn, ngược lại in ra NO.
Ràng buộc
- Tất cả xâu đôi một phân biệt.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 gennady korotkevich petr mitrichev gaoyuan chen 3 1 2 |
YES | Nếu người 3 chọn chen, người 1 chọn gennady, người 2 chọn petr thì chen < gennady < petr, đúng thứ tự 3, 1, 2. |
| 2 galileo galilei nicolaus copernicus 2 1 |
YES | Nếu người 2 chọn copernicus, người 1 chọn galileo (hoặc galilei) thì copernicus đứng trước, đúng thứ tự 2, 1. |
| 3 gennady korotkevich petr mitrichev gaoyuan chen 1 2 3 |
NO | Dù chọn thế nào, biệt danh của người 3 luôn bắt đầu bằng g (chen/gaoyuan) và nhỏ hơn biệt danh người 1, nên không thể xếp người 1 trước người 3. |
Bình luận