P155SUMD - ROUND 5D - Chỉ là sắp xếp

Link Sub: http://www.spoj.com/PTIT/problems/P155SUMD/
Người Gửi: Vô Danh

  • Problem:

Cho 2 dãy số, dãy a[] có n phần tử, dãy b[] có m phần tử.  
Yêu cầu : In ra m dòng, dòng thứ i là số lượng số trong dãy a nhỏ hơn hoặc bằng b[i].
Input
Dòng đầu tiên chứa 2 số n, m lần lượt là số lượng phần tử của 2 dãy a[], b[].  
Dòng thứ 2 chứa n số nguyên a[1], a[2], … a[n].  
M dòng tiếp theo mỗi dòng chứa 1 số nguyên b[1], b[2], … b[m]  
(1 <= n, m, a[i], b[i] <= 10^6)
Output
In ra kết quả bài toán.
Example:
Input
5 3
1 2 3 4 5
2
3
4
Output:
2
3
4

  • Solution:

- Sắp xếp lại mảng a tăng dần. - Sử dụng biến thể chặt nhị phân tìm vị trí cuối cùng mà nó bé hơn hoặc bằng số cần tìm (bsearch). -> in ra vị trí (chính là số lượng số <= ) *Chú ý: Nếu không tìm thấy in ra '0'; Độ phức tạp O(m*logn) tùy thuộc vào dãy a. (sort trong thư viện là heap sort)

  • Code:

C++:



JAVA:


Share this

Related Posts

Previous
Next Post »