Dãy con tối ưu (bản dễ)
Đề bài
Mô tả
Cho một dãy số nguyên độ dài . Một dãy con của thu được bằng cách xóa đi không hoặc nhiều phần tử (các phần tử còn lại không nhất thiết đứng liền nhau, nhưng giữ nguyên thứ tự ban đầu).
Với một số nguyên (), một dãy con được gọi là tối ưu nếu:
- nó có độ dài đúng bằng và tổng các phần tử là lớn nhất có thể trong số mọi dãy con độ dài ;
- trong số mọi dãy con độ dài đạt tổng lớn nhất, nó là dãy có thứ tự từ điển nhỏ nhất.
Nhắc lại: dãy nhỏ hơn theo thứ tự từ điển so với dãy nếu tồn tại vị trí sao cho và .
Cho truy vấn, mỗi truy vấn gồm hai số và (). Với mỗi truy vấn, hãy in ra giá trị nằm ở vị trí (đánh số từ 1) của dãy con tối ưu ứng với .
Dữ liệu vào
- Dòng đầu chứa số nguyên , độ dài của dãy .
- Dòng thứ hai chứa số nguyên .
- Dòng thứ ba chứa số nguyên , số truy vấn.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và .
Dữ liệu ra
In ra số nguyên, mỗi số trên một dòng: đáp án cho các truy vấn theo đúng thứ tự chúng xuất hiện.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 10 20 10 6 1 1 2 1 2 2 3 1 3 2 3 3 |
20 10 20 10 20 10 |
Các dãy con tối ưu: với là ; với là (lấy phần tử đứng trước, không phải , để nhỏ nhất theo thứ tự từ điển); với là . |
| 7 1 2 1 3 1 2 1 9 2 1 2 2 3 1 3 2 3 3 1 1 7 1 7 7 7 4 |
2 3 2 3 2 3 1 1 3 |
Với , dãy con tối ưu là (các phần tử và ). Với là . Với là toàn bộ dãy. |
Bình luận