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}\) và \(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}\)
Code tích cực |
---|
Trong 24h |
|
Trong 7 ngày |
|
Trong 30 ngày |
|
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 38905 |