CTDL - set6 - Tìm kiếm trên set
Point: 100.0
Time limit: 1.0s
Memory limit: 977 M
Input:
stdin
Output:
stdout
Author:
Problem type
C - Cấu trúc dữ liệu nâng cao: 05 - Set
Ngôn ngữ cho phép
C#, C++, Java, Python
Cho 1 dãy \(N\) số nguyên \(a_1, a_2, ... , a_N\).
Cho \(T\) truy vấn, mỗi truy vấn chứa 1 số nguyên \(k\).
Yêu cầu
Với mỗi truy vấn, in ra giá trị nhỏ nhất mà lớn hơn \(k\) trong dãy. Nếu không tồn tại giá trị lớn hơn \(k\), in ra −1.
Input
- Dòng đầu tiên chứa 2 số nguyên dương \(N, T\) \((1 ≤ N, T ≤ 10^5)\).
- Dòng tiếp theo chứa \(N\) số nguyên \(a_1, a_2, ... , a_N\) \((|a_i| ≤ 10^9)\).
- \(T\) dòng tiếp theo, mỗi dòng chứa 1 số nguyên \(k\) \((|k| ≤ 10^9\)).
Output
In ra trên \(T\) dòng, mỗi dòng là kết quả của từng truy vấn tương ứng.
Example
INPUT | OUTPUT |
---|---|
\(5\) \(1\) \(1\) \(2\) \(3\) \(4\) \(5\) \(4\) |
\(5\) |
\(5\) \(2\) \(1\) \(2\) \(3\) \(4\) \(5\) \(2\) \(5\) |
\(3\) -\(1\) |
Gợi ý: Sử dụng tính năng upper_bound của Set để xử lý bài toán.