trang chủ / bài tập / namesort

Sắp xếp biệt danh

Đề bài

Mô tả

n người, người thứ i có tên (first name) là fi và họ (last name) là si. Mỗi người sẽ chọn đúng một trong hai xâu fi hoặc si để làm biệt danh (handle) của mình. Gọi biệt danh đã chọn của người thứ ihi.

Cho một hoán vị p1,p2,,pn của 1,2,,n. 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à:

hp1<hp2<<hpn

trong đó phép so sánh < là so sánh theo thứ tự từ điển.

Tất cả 2n 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 n: số người.
  • n dòng tiếp theo, dòng thứ i chứa hai xâu fisi: tên và họ của người thứ i. Mỗi xâu chỉ gồm các chữ cái Latin thường.
  • Dòng cuối chứa n số nguyên phân biệt p1,p2,,pn.

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

  • 1n105
  • 1|fi|,|si|50
  • Tất cả 2n 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

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0