Đế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...