Đếm phần tử không vượt quá x

Xem dạng PDF

Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python

Cho một dãy gồm ~n~ số nguyên và ~q~ câu hỏi. Mỗi câu hỏi cho một số ~x~ và yêu cầu đếm xem trong dãy có bao nhiêu phần tử nhỏ hơn hoặc bằng ~x~. Gợi ý: sắp xếp dãy rồi dùng upper_bound (tìm kiếm nhị phân) để trả lời mỗi câu hỏi nhanh.

Dữ liệu vào

Dòng đầu tiên chứa hai số nguyên ~n, q~ (~1 \le n, q \le 10^5~).

Dòng thứ hai chứa ~n~ số nguyên ~a_1, \dots, a_n~ (~|a_i| \le 10^9~).

Dòng thứ ba chứa ~q~ số nguyên ~x_1, \dots, x_q~ (~|x_j| \le 10^9 + 1~).

Kết quả

In ra ~q~ dòng, dòng thứ ~j~ là số phần tử của dãy không vượt quá ~x_j~.

Ví dụ

Ví dụ 1

Input:

5 3
1 3 5 7 9
4 10 0

Output:

2
5
0

Ví dụ 2

Input:

3 2
2 2 2
2 1

Output:

3
0

Giải thích

Với dãy 1 3 5 7 9: có ~2~ số không vượt quá ~4~, có ~5~ số không vượt quá ~10~, có ~0~ số không vượt quá ~0~. Duyệt cả dãy cho mỗi câu hỏi sẽ mất ~n \times q = 10^{10}~ phép tính, quá chậm.


Đang tải...