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

Vẽ cây lên các điểm

Đề bài

Mô tả

Cho một cây gồm n đỉnh và n điểm trên mặt phẳng, trong đó không có ba điểm nào thẳng hàng.

Nhiệm vụ của bạn là vẽ cây đã cho lên mặt phẳng, dùng các điểm đã cho làm vị trí của các đỉnh. Cụ thể, mỗi đỉnh của cây phải được đặt vào đúng một điểm, và mỗi điểm phải ứng với đúng một đỉnh. Nếu hai đỉnh của cây được nối bởi một cạnh thì ta vẽ một đoạn thẳng nối hai điểm tương ứng.

Cách đặt phải thỏa mãn: hai đoạn thẳng ứng với hai cạnh không kề nhau (không có đỉnh chung) thì không được có điểm chung nào; hai đoạn thẳng ứng với hai cạnh kề nhau (có chung một đỉnh) thì chỉ được cắt nhau đúng tại điểm chung đó.

Dữ liệu đảm bảo luôn tồn tại một cách đặt hợp lệ.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n, số đỉnh của cây (cũng là số điểm được chọn).
  • n1 dòng tiếp theo, mỗi dòng chứa hai số nguyên uivi, cho biết cạnh thứ i nối hai đỉnh uivi.
  • n dòng tiếp theo, dòng thứ i chứa hai số nguyên xiyi, là tọa độ của điểm thứ i.

Dữ liệu ra

In ra n số nguyên phân biệt từ 1 đến n: số thứ i là chỉ số của đỉnh cây được đặt tại điểm thứ i.

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

Ràng buộc

  • 1n1500
  • 1ui,vin, uivi
  • 109xi,yi109
  • Không có ba điểm nào thẳng hàng.

Ví dụ

Input Output Giải thích
3
1 3
2 3
0 0
1 1
2 0
1 3 2 Đặt đỉnh 1 tại điểm (0,0), đỉnh 3 tại điểm (1,1), đỉnh 2 tại điểm (2,0). Hai cạnh 1323 kề nhau (chung đỉnh 3), chỉ cắt nhau tại điểm chứa đỉnh 3.
4
1 2
2 3
1 4
-1 -2
3 5
-3 3
2 0
2 4 1 3 Đặt đỉnh 2 tại điểm 1, đỉnh 4 tại điểm 2, đỉnh 1 tại điểm 3, đỉnh 3 tại điểm 4. Các đoạn thẳng vẽ ra không cắt nhau ngoài các điểm chung của các cạnh kề.

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