Đoạn Đường Ngắn Nhất

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Pascal, Python, SCRATCH
Điểm: 7 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Khu Tony sống có một con đường rất dài.Trên con đường đó có \(n\) camera an ninh được lắp đặt tại các vị trí khác nhau. Vị trí của mỗi camera được biểu diễn bởi một số nguyên dương \(t_i\).
-Mỗi camera chỉ thuộc về một trong hai loại:

Loại 1: phát hiện chuyển động ban đêm.
Loại 2: phát hiện tiếng ồn ban đêm.

Để đảm bảo an ninh tốt nhất, thành ra đội trật tự khu Tony sống muốn tìm một đoạn đường ngắn nhất (được xác định bởi hai camera ngoài cùng) sao cho trong đoạn đó:
-Có ít nhất \(a\) camera loại 1.
-Có ít nhất \(b\) camera loại 2.
Hãy tính chiều dài ngắn nhất của đoạn đường thoả mãn điều kiện trên.

Input:

-Dòng đầu tiên gồm 3 số nguyên: \(n,a,b\) lần lượt là số camera khu mà Tony sinh sống,\(a\) được biểu tượng cho số camera loại 1 ít nhất phải có đủ trong đoạn đường đó,\(b\) tương ứng cho số lượng tối thiểu mà camera loại 2 phải có trong đoạn đường đó.( (\(n\leq 3.10^5\),\(a+b\leq n\)).
-Dòng thứ i trong dòng tiếp theo mỗi dòng chứa hai số nguyên dương (\(1\leq t_i \leq 10^9)\)) trong đó \(t_i\) là khoảng cách của cây tính từ vị trí bắt đầu của con đường,\(v_i\)=1 nếu như camera thứ i là loại camera thứ nhất,\(v_i\)=2 nếu như camera thứ i là loại camera loại 2.

Output:

-In ra một số nguyên dương duy nhất là độ dài đoạn đường ngắn nhất thỏa mãn điều kiện bài toán.Nếu như không có đoạn nào thỏa mãn thì in ra -1.

Example:

Ví dụ
Input
7 2 2
20 2
30 1
25 1
35 1
60 2
65 2
10 1
Output
35

Bình luận

Không có bình luận nào.