Module: Tìm kiếm nhị phân


Problem

4 /5


Tìm kiếm nhị phân trái và phải

Problem

Cho hai danh sách số, các số trong danh sách đầu tiên theo thứ tự không giảm dần. Đối với mỗi số trong danh sách thứ hai, hãy xác định số lần xuất hiện đầu tiên và cuối cùng của số đó trong danh sách đầu tiên.
 
Đầu vào:
- dòng đầu tiên của đầu vào chứa hai số NM (\(1<=N,\ M <=20000\));
- dòng thứ hai chứa N số nguyên không giảm — các phần tử của danh sách đầu tiên;
- dòng thứ ba chứa M các số nguyên không âm - các phần tử của danh sách thứ hai.
Tất cả các số trong danh sách đều là số nguyên có dấu 32 bit.
 
Đầu ra: Chương trình sẽ xuất các dòng M. Đối với mỗi số từ danh sách thứ hai, hãy in số lần xuất hiện đầu tiên và cuối cùng của nó trong danh sách đầu tiên. Việc đánh số bắt đầu từ một. Nếu số không có trong danh sách đầu tiên, bạn cần in một số 0 duy nhất.
 
Ví dụ
<đầu>
# Đầu vào Đầu ra
1
105
1 1 3 3 5 7 9 18 18 57
57 3 9 1 179
10 10
3 4
7 7
1 2
0