Wilbur và đánh số điểm

Đề bài

Mô tả

Cho tập n điểm có toạ độ nguyên không âm trên mặt phẳng. Tập điểm có tính chất đóng theo hướng giảm: nếu (x,y) thuộc tập thì mọi điểm (x,y) với 0xx0yy cũng thuộc tập.

Cần đánh số cho n điểm bằng các số nguyên phân biệt từ 1 đến n sao cho cách đánh số là hợp lệ: nếu điểm (x,y) được gán số i thì với mọi điểm (x,y) thuộc tập với xxyy (kể cả khác điểm gốc), số của nó phải i.

Mỗi điểm có giá trị đặc biệt s(x,y)=yx. Cho dãy số nguyên w1,w2,,wn. Hãy tìm một cách đánh số hợp lệ sao cho điểm được gán số i có giá trị đặc biệt đúng bằng wi, tức là điểm số i(xi,yi) thoả yixi=wi.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số lượng điểm.
  • n dòng tiếp theo, mỗi dòng chứa hai số nguyên xy — toạ độ một điểm trong tập. Các điểm phân biệt; tập đóng theo hướng giảm như mô tả.
  • Dòng cuối chứa n số nguyên w1,w2,,wn.

Dữ liệu ra

  • Nếu tồn tại cách đánh số hợp lệ thoả yêu cầu, in YES trên một dòng, sau đó in n dòng — dòng thứ i chứa toạ độ điểm được gán số i.
  • Nếu không tồn tại, in NO.

Nếu có nhiều cách đánh số hợp lệ, in bất kỳ cách nào.

Ràng buộc

  • 1n100000
  • 0x,y100000
  • 100000wi100000

Ví dụ

Input Output Giải thích
5
2 0
0 0
1 0
1 1
0 1
0 -1 -2 1 0
YES
0 0
1 0
2 0
0 1
1 1
Tập có 5 điểm. Cách đánh số 1:(0,0), 2:(1,0), 3:(2,0), 4:(0,1), 5:(1,1) thoả: (0,0) không bị điểm nào số nhỏ hơn "khống chế", giá trị đặc biệt là 0=w1; tương tự với các điểm còn lại w lần lượt là 1,2,1,0.
3
1 0
0 0
2 0
0 1 2
NO Ba điểm có giá trị đặc biệt 0,1,2, nhưng w=(0,1,2) chứa các giá trị không có trong tập.

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