Mua vé tối ưu
View as PDFVừa qua, các sinh viên của CLB lập trình IUH thi đạt kết quả tốt nên thầy Tina cho một chuyến đi du lịch nước ngoài để trượt trên các đồi núi tuyết. Khu vực mà họ chọn gồm có ~n~ địa điểm với độ cao được đánh số từ ~1~ đến ~n~ tăng dần. Do kinh phí có hạn nên thầy Tina đã mua ~m~ vé mà mỗi vé chỉ cho phép trượt từ địa điểm ~i~ đến địa điểm ~j~ trong đó ~i > j~. Các bạn sinh viên lần đầu trượt tuyết nên chỉ dám trượt từ các địa điểm có chiều cao liên tiếp ~i \to i+1 \to i+2 \to ...~ chứ không dám trượt xa. Điều này làm cho các quãng đường mà họ có thể trượt được là không dài lắm. Vì thương các sinh viên nên thầy Tina dự kiến sẽ mua thêm không quá ~k~ vé nữa để có thể nối giữa hai địa điểm nào đó làm cho đường trượt có thể dài hơn. Bây giờ cho thông tin của ~m~ vé, hãy tính số địa điểm nhiều nhất mà các sinh viên có thể trượt qua được, tức là một giá trị ~R-L+1~ lớn nhất có thể sao cho SV có đủ vé từ ~R \to R-1, \, R-1 \to R-2, \, ..., L+1 \to L.~
Input
Dòng đầu tiên gồm số nguyên ~n,m,k~ cho biết số địa điểm, số vé đã mua và số vé dự kiến mua thêm, trong đó ~1 \le n \le 10^5, \, 0 \le m \le \min \{10^5, \frac{n(n-1)}{2} \}, \, 0 \le k \le 100.~
Trong ~m~ dòng tiếp theo, mỗi dòng gồm hai số nguyên ~i,j~ với ~i > j~ cho biết có đường trượt tuyết từ ~i \to j.~
Output
Một số nguyên duy nhất là số địa điểm nhiều nhất có thể trượt qua.
Sample input 1
6 2 2
2 1
4 3
Sample output 1
5
Sample input 2
5 1 1
5 1
Sample output 2
2
Sample input 3
4 2 2
4 3
2 1
Sample output 3
4
Giải thích
Trong VD1 đã cho, thầy Tina có thể mua thêm ~2~ vé trượt từ ~3 \to 2~ và ~5 \to 4~ để các sinh viên có thể trượt được từ ~5 \to 4 \to 3 \to 2 \to 1.~ Trong VD2, dù thầy Tina có mua vé để trượt từ ~5 \to 1~ nhưng SV chỉ có thể trượt các đoạn ngắn, vì thể SV có thể nhờ thầy Tina mua thêm vé ~5 \to 4~ (để trượt được 2 vị trí), hoặc mua thêm vé ~2 \to 1~.
Comments