• Source
    1. #include <iostream>
    2. #include <algorithm>
    3. using namespace std;
    4.  
    5. long bsearch(long * a, long lo, long hi, long key ) {
    6.  
    7. long ans = -1;
    8.  
    9. while(lo <= hi) {
    10. int mi = (lo + hi) / 2;
    11. if (a[mi] <= key) { // neu a[mi] thoa man dk
    12. ans = mi; // luu ket qua vao ans
    13. lo = mi + 1; // thu nho pham vi tim kiem
    14. } else hi = mi - 1;
    15. }
    16.  
    17. return ans;
    18. }
    19.  
    20. main () {
    21. long n, m;
    22. cin>>n>>m;
    23. long a[n+5];
    24. long b[m+5];
    25. for (long i=0; i<n; i++) {
    26. cin>>a[i];
    27. }
    28. for (long i=0; i<m; i++) {
    29. cin>>b[i];
    30. }
    31. sort (a, a+n);
    32.  
    33. long kt;
    34. long dem;
    35. for (long i=0; i<m; i++) {
    36. kt=b[i];
    37. if (kt<a[0]) {
    38. cout<<"0"<<endl;
    39. } else {
    40. long vt=bsearch(a, 0 , n-1, kt);
    41. dem=vt+1;
    42. cout<<dem<<endl;
    43. }
    44.  
    45. }
    46. }