CON ĐƯỜNG ĐẸP

Dọc bên đường đi vào khu đô thị Alpha trồng rất nhiều cây bàng Singapore và bằng lăng tím. Để chuẩn bị chào mừng ngày lễ lớn trong khu đô thị, ban quản lý quyết định tạo điểm nhấn cho hàng cây. Sau khi khảo sát, ban quản lý ghi nhận được vị trí của tất cả \(n\) cây, không có hai cây nào ở cùng vị trí. Cây thứ \(i\) ở vị trí có khoảng cách đến vị trí bắt đầu của con đường là \(d_{i}\ (i\ = \ 1,\ 2,\ \ldots,\ n)\). Với kinh phí có hạn, ban quản lý muốn chọn một đoạn đường có ít nhất \(a\) cây bàng và ít nhất b cây bằng lăng với độ dài là ngắn nhất để trang trí.

Yêu cầu: Cho \(a,\ b\) và vị trí của \(n\) cây. Hãy tìm đoạn đường có độ dài ngắn nhất mà dọc theo đoạn đường đó có ít nhất \(a\) cây bàng và ít nhất \(b\) cây bằng lăng.

Dữ liệu vào:

+ Dòng đầu tiên chứa 3 số nguyên dương \(n,\ a,\ b\ (2\ \leq \ a\ + \ b\ \leq \ n)\).

+ Dòng thứ \(i\) trong \(n\) dòng tiếp theo mỗi dòng chứa hai số nguyên dương \(d_{i}\)\(k_{i}\). Trong đó \(d_{i}\ (d_{i}\ \leq \ 10^{9})\) là khoảng cách của cây tính từ vị trí bắt đầu của con đường, \(k_{i}\ = \ 1\) nếu cây thứ \(i\) là cây bàng, \(k_{i}\ = \ 2\) nếu cây thứ i là cây bằng lăng.

Ví dụ:

Input Output
7 2 2
20 2
30 1
25 1
35 1
60 2
65 2
10 1
35

Kết quả:

+ Ghi một số nguyên là độ dài đoạn đường ngắn nhất tìm được, quy ước ghi số \(- 1\) nếu không tồn tại đoạn đường nào thỏa mãn điều kiện đặt ra.

Ràng buộc:

+ 40% số test với \(2\ \leq \ n\ \leq \ 300\)

+ 30% số test với \(2\ \leq \ n\ \leq \ 3000\)

+ 30% số test với \(2\ \leq \ n\ \leq \ {3.10}^{5}\)

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. npk1605 (5/10)
  2. hungeazy08 (4/26)
  3. tung (2/5)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]