Đóng đinh đoạn thẳng

Đề bài

Mô tả

Cho n đoạn thẳng nằm trên trục số Ox. Bạn có thể đóng một chiếc đinh vào một điểm nguyên bất kỳ trên trục. Khi đóng đinh tại một điểm, tất cả các đoạn thẳng chứa điểm đó (kể cả khi điểm trùng với đầu mút của đoạn) được xem là đã bị ghim.

Hãy tìm số lượng đinh ít nhất cần dùng để ghim tất cả các đoạn thẳng, và chỉ ra vị trí các đinh đó.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n: số lượng đoạn thẳng.
  • n dòng tiếp theo, mỗi dòng chứa hai số nguyên là tọa độ hai đầu mút của một đoạn thẳng. Hai đầu mút có thể được cho theo thứ tự bất kỳ, và đoạn có thể suy biến thành một điểm (hai đầu mút trùng nhau).

Dữ liệu ra

  • Dòng đầu ghi một số nguyên: số đinh ít nhất cần dùng.
  • Dòng thứ hai ghi tọa độ các đinh đã đóng, cách nhau bởi dấu cách, theo thứ tự bất kỳ.

Nếu có nhiều đáp án, in ra một đáp án bất kỳ.

Ràng buộc

  • 1n1000
  • Mọi tọa độ có giá trị tuyệt đối không vượt quá 10000.

Ví dụ

Input Output Giải thích
2
0 2
2 5
1
2
Điểm 2 nằm trong cả hai đoạn [0,2][2,5] nên một chiếc đinh là đủ.
5
0 3
4 2
4 8
8 10
7 7
3
3 7 10
Đinh tại 3 ghim [0,3]; đinh tại 7 ghim [2,4], [4,8][7,7]; đinh tại 10 ghim [8,10]. Không thể dùng ít hơn 3 đinh.

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