Truy vấn
Xem PDF
Điểm:
2200 (p)
Thời gian:
1.0s
Bộ nhớ:
512M
Input:
bàn phím
Output:
màn hình
Cho một dãy số nguyên \(a\) độ dài \(n\). Bạn cần trả lời \(q\) truy vấn, truy vấn thứ \(i\) đưa ra một số nguyên \(x_i\), bạn cần chọn ra một đoạn các số liên tiếp trên dãy \(a\) là \(a_l, a_{l+1}, \dots, a_r\) (\(1 \le l \le r \le n\)) sao cho với mỗi số nguyên \(v\) thoả mãn \(0 \le v \le x_i\) xuất hiện ít nhất một lần trong đoạn đó, và độ dài của đoạn được chọn là nhỏ nhất có thể.
Input
- Dòng đầu tiên chứa hai số nguyên \(n, q\) (\(1 \le n, q \le 2\cdot 10^5\)), tương ứng là độ dài dãy \(a\) và số truy vấn bạn cần trả lời.
- Dòng tiếp theo chứa \(n\) số nguyên, số nguyên thứ \(i\) là giá trị của \(a_i\) (\(0 \le a_i \le 10^9\)).
- \(q\) dòng tiếp theo, dòng thứ \(i\) chứa một số nguyên \(x_i\) (\(0 \le x_i \le 10^9\)) tương ứng là thông tin của truy vấn thứ \(i\).
Output
- Ghi ra trên \(q\) dòng, dòng thứ \(i\) là độ dài đoạn con liên tiếp ngắn nhất thoả mãn truy vấn thứ \(i\). Nếu không thể chọn ra đoạn thoả mãn, ghi ra
-1.
Example
Test 1
Input
5 3
0 0 1 3 2
2
3
4
Output
4
4
-1
Scoring
- Subtask \(1\) (\(10\) điểm): \(n, q, a_i, x_i \le 200\).
- Subtask \(2\) (\(10\) điểm): \(n \le 200\).
- Subtask \(3\) (\(10\) điểm): \(q = 1, x_i = 1\).
- Subtask \(4\) (\(15\) điểm): các số \(a_i\) đôi một phân biệt.
- Subtask \(5\) (\(15\) điểm): \(n \le 2000\).
- Subtask \(6\) (\(20\) điểm): \(q = 1\).
- Subtask \(7\) (\(20\) điểm): không có ràng buộc gì thêm.
Kỳ thi:
- Chung kết Young ICT 2024 - Bảng C2 (14 Tháng tư, 2024)
Bình luận