Truy vấn

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Đ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\)\(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.

Bình luận

Mới nhất
Tải bình luận...

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

Kỳ thi: