Quá nhiều đoạn

Đề bài

Mô tả

Cho n đoạn thẳng trên trục số OX. Các đoạn có thể giao nhau, lồng nhau hoặc trùng nhau. Đoạn thứ i là [li;ri] (với li≤ri) và phủ tất cả các điểm nguyên j thoả li≤j≤ri.

Một điểm nguyên được gọi là điểm xấu nếu nó bị phủ bởi nhiều hơn k đoạn.

Hãy xoá đi số lượng đoạn ít nhất sao cho sau khi xoá, không còn điểm xấu nào trên trục số.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và k.
  • n dòng tiếp theo, mỗi dòng chứa hai số nguyên li và ri — hai đầu mút của đoạn thứ i.

Dữ liệu ra

  • Dòng đầu in một số nguyên m — số đoạn ít nhất cần xoá.
  • Dòng thứ hai in m số nguyên phân biệt p1,p2,…,pm — chỉ số của các đoạn bị xoá (theo thứ tự tuỳ ý).

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

Ràng buộc

  • 1≤k≤n≤2·105
  • 1≤li≤ri≤2·105

Ví dụ

Input Output Giải thích
7 2
11 11
9 11
7 8
8 9
7 8
9 11
7 9
3
7 4 1
Xoá 3 đoạn (một phương án là chỉ số 7,4,1). Sau đó mỗi điểm nguyên bị phủ tối đa 2 lần. Đáp án không duy nhất.
5 1
29 30
30 30
29 29
28 30
30 30
3
1 4 2
k=1 nên mỗi điểm chỉ được phủ bởi đúng 1 đoạn. Cần xoá ít nhất 3 đoạn.
6 1
2 3
3 3
2 3
2 2
2 3
2 3
4
1 3 5 6
Sau khi xoá 4 đoạn, các đoạn còn lại không chồng lên nhau quá 1 lần tại bất kỳ điểm nguyên nào.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0