[Đak Lắk 22-23] Số nhỏ nhất trong đoạn LR
Cho một dãy số nguyên gồm N phần tử a1, a2, ..., an đã được sắp xếp tăng và Q truy vấn. Mỗi truy vấn gồm ba số L, R (1 ≤ L ≤ R ≤ N) và S (0 ≤ S ≤ 2×109), trong đó L và R là số nguyên dương, S là số nguyên.
Yêu cầu:
Hãy lập trình trả lời Q truy vấn. Mỗi truy vấn yêu cầu tìm số nhỏ nhất lớn hơn hoặc bằng S thuộc đoạn từ L đến R (dãy con liên tiếp aL, aL+1, ..., aR).
Dữ liệu vào:
Đọc từ bàn phím theo cấu trúc sau:</p>
Dòng thứ nhất: hai số nguyên dương N (1 ≤ N ≤ 105), Q (1 ≤ Q ≤ 105).
Dòng thứ hai: N số nguyên a1, a2, ..., an (0 ≤ ai ≤ 2×109), dãy đã được sắp xếp tăng.
Q dòng tiếp theo: mỗi dòng gồm ba số nguyên L, R, S thể hiện một truy vấn.
Các số trên một dòng cách nhau một khoảng trắng.
Dữ liệu ra:
Xuất ra màn hình gồm Q dòng, mỗi dòng gồm một số nguyên là kết quả truy vấn tương ứng. Nếu không có kết quả thì in ra -1.
Ví dụ:
Dữ liệu nhập vào</p>
5 3 2 2 8 9 10 1 3 2 1 4 7 1 5 202
Kết quả xuất ra
2 8 -1
Giải thích:
N = 5 và dãy số có 5 phần tử là: 2, 2, 8, 9, 10.
Q = 3 nghĩa là có 3 truy vấn.
Truy vấn 1: đoạn [1, 3] (2, 2, 8) có giá trị nhỏ nhất ≥ 2 là 2 → in 2.
Truy vấn 2: đoạn [1, 4] (2, 2, 8, 9) có giá trị nhỏ nhất ≥ 7 là 8 → in 8.
Truy vấn 3: đoạn [1, 5] không có số nào ≥ 202 → in -1.
Comments