trang chủ / đề bài / dhbb20_10_landing

Hạ cánh

Đề bài

Mô tả

Sau khi khống chế thành công COVID 19, các đường bay đã được mở lại, nhu cầu đi lại tăng cao sau kì nghỉ Tết dài nhất trong lịch sử. Hiện tại là thời điểm 0, có N máy bay đang tiếp cận để hạ cánh tại sân bay Cát Bi. Máy bay thứ i (1≤i≤N) có thể điều chỉnh tốc độ để hạ cánh ở một mốc thời điểm nguyên trong khoảng thời gian [Li,Ri]. Trong đó Li là thời điểm sớm nhất máy bay có thể hạ cánh, Ri là thời điểm muộn nhất máy bay phải hạ cánh; quá thời điểm Ri, máy bay sẽ chuyển hướng hạ cánh tại sân bay khác. Khoảng thời gian Ri−Li được gọi là giới hạn chờ của máy bay thứ i, và giới hạn này của tất cả N máy bay là giống nhau.

Sân bay có K đường băng, có thể hoạt động độc lập và tiếp nhận các máy bay hạ cánh. Các máy bay phải thực hiện lệnh giãn cách X giây, nghĩa là 2 máy bay liên tiếp hạ cánh trên cùng một đường băng phải cách nhau ít nhất X giây. Hai máy bay hạ cánh trên hai đường băng khác nhau thì không bị ràng buộc gì (có thể hạ cánh cùng một thời điểm).

Yêu cầu: Hãy lên phương án sắp xếp các máy bay sao cho số lượng máy bay hạ cánh là nhiều nhất có thể. Nếu có nhiều phương án cùng đạt số lượng máy bay hạ cánh nhiều nhất, hãy tìm phương án tối ưu sao cho thời gian chênh lệch nhỏ nhất giữa 2 máy bay cùng hạ cánh trên một đường băng là lớn nhất.

Dữ liệu vào

  • Dòng đầu tiên ghi 3 số nguyên dương N,K,X (N≤105, K≤4, X≤109).
  • Tiếp theo là N dòng, mỗi dòng ghi 2 số nguyên Li,Ri (0≤Li≤Ri≤109).

Dữ liệu đảm bảo giá trị Ri−Li của tất cả các máy bay là giống nhau.

Dữ liệu ra

In ra 2 số nguyên P và T trên một dòng, phân tách bởi dấu cách:

  • Số thứ nhất P là số máy bay lớn nhất có thể hạ cánh được.
  • Số thứ hai T là giá trị chênh lệch nhỏ nhất giữa 2 máy bay bất kỳ trên cùng một đường băng trong phương án tối ưu tìm được. Nếu trong phương án tối ưu mỗi đường băng chỉ tiếp nhận không quá 1 máy bay thì ghi ra −1.

Ràng buộc

  • 1≤N≤105, 1≤K≤4, 1≤X≤109.
  • 0≤Li≤Ri≤109; Ri−Li như nhau với mọi i.

Subtasks

  • Subtask 1 (16 điểm): N≤8, K=1.
  • Subtask 2 (12 điểm): N≤8, K=2.
  • Subtask 3 (20 điểm): N≤16, K=1, 0≤Li≤Ri≤100.
  • Subtask 4 (16 điểm): N≤16, K=2, 0≤Li≤Ri≤100.
  • Subtask 5 (20 điểm): N≤105, K=1.
  • Subtask 6 (16 điểm): N≤105, 2≤K≤4.

Chấm điểm

Output luôn phải gồm 2 số nguyên. Nếu in đúng số thứ nhất và sai số thứ hai, bạn được 50% số điểm của test. Nếu in đúng cả hai số, bạn được 100% số điểm của test. Điểm của mỗi subtask là tổng điểm các test của subtask đó.

Ví dụ

Input Output Giải thích
5 1 60
0 20
0 20
100 120
60 80
110 130
3 65 Đường băng 1: máy bay 1 ở thời điểm 0, máy bay 4 ở thời điểm 65, máy bay 5 ở thời điểm 130.
5 2 60
0 20
0 20
100 120
60 80
110 130
5 65 Đường băng 1: máy bay 1 ở thời điểm 0, máy bay 4 ở thời điểm 65, máy bay 5 ở thời điểm 130. Đường băng 2: máy bay 2 ở thời điểm 0, máy bay 3 ở thời điểm 100.
5 3 60
0 20
0 20
100 120
60 80
110 130
5 120 Đường băng 1: máy bay 1 ở thời điểm 0, máy bay 3 ở thời điểm 120. Đường băng 2: máy bay 4 ở thời điểm 60. Đường băng 3: máy bay 2 ở thời điểm 0, máy bay 5 ở thời điểm 120.
3 2 10
0 0
0 0
0 0
2 -1 Ví dụ bổ sung (không có trong đề gốc). Cả ba máy bay đều phải hạ cánh ở thời điểm 0, mỗi đường băng chỉ nhận được một máy bay, nên P=2 và T=−1.

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