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

Nhân viên cứu hộ (Platinum)

Đề bài

Mô tả

N nhân viên cứu hộ, nhân viên thứ i được phân công một ca trực liên tục biểu diễn bởi đoạn thời gian [li,ri]. Quản lý buộc phải sa thải đúng K nhân viên trong số N nhân viên này.

Tổng thời gian được bao phủ là độ dài phần hợp của các đoạn thời gian còn lại (phần thời gian có ít nhất một nhân viên đang trực). Hãy tính tổng thời gian được bao phủ lớn nhất có thể đạt được sau khi sa thải đúng K nhân viên.

Các ca trực có thể chồng lấp nhau tùy ý.

Dữ liệu vào

  • Dòng đầu ghi hai số nguyên NK.
  • N dòng tiếp theo, mỗi dòng ghi hai số nguyên liri biểu diễn ca trực của nhân viên thứ i.
  • Các ca trực được cho theo thứ tự bất kỳ.

Dữ liệu ra

Một số nguyên duy nhất: tổng thời gian được bao phủ lớn nhất sau khi sa thải đúng K nhân viên.

Ràng buộc

  • 1N105
  • 1Kmin(N,100)
  • 0li<ri109
  • Tất cả 2N giá trị li,ri đều đôi một phân biệt.

Ví dụ

Input Output Giải thích
3 2
1 8
7 15
2 14
12 Phải sa thải đúng 2 người nên chỉ còn giữ lại 1 ca trực. Ca dài nhất là [2,14] với độ dài 12, nên đáp án là 12.
5 2
1 5
3 8
7 12
10 15
13 20
16 Sa thải hai nhân viên có ca [3,8][10,15], giữ lại [1,5], [7,12], [13,20]. Hợp của chúng có độ dài 4+5+7=16.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0