fork download
  1. #include <bits/stdc++.h>
  2. using namespace std ;
  3. #define fast ios_base::sync_with_stdio(0);cin.tie(0);
  4. #define endl "\n"
  5. #define int long long
  6. #define ll long long
  7. #define str string
  8.  
  9. ll FP(ll base , ll p ){
  10. if (p == 1) {
  11. return base ;
  12. }
  13. ll ans = FP(base , p/2) ;
  14. if (p % 2 == 0){
  15. return ans * ans ;
  16. }
  17. else {
  18. return base * ans * ans ;
  19. }
  20.  
  21. }
  22. //FFFFFFTTTTTTT -> MID = L + (R - L) / 2;
  23. //true -> r = mid
  24. //false -> l = mid+1
  25.  
  26.  
  27.  
  28. //TTTTTTTFFFFFFF -> MID = L + (R - L + 1) / 2
  29. //true l = mid;
  30.  
  31. //false r = mid-1
  32.  
  33.  
  34.  
  35. int32_t main ()
  36. {
  37. fast
  38. int n , q ;
  39. cin >> n >> q ;
  40. int arr[n] ;
  41. for (int i = 0 ; i < n ; i++) {
  42. cin >> arr[i] ;
  43. }
  44. while(q--) {
  45. int x ;
  46. cin >> x ;
  47. int l = 0 , r = n-1 ;
  48. while( l < r) {
  49. int mid = l + ( r - l + 1 ) /2 ;
  50. if(arr[mid] <= x) {//1 3 5 7 8 9
  51. l = mid ;
  52. }
  53. else {
  54. r = mid-1 ;
  55. }
  56. }
  57. if ( l >= 0 && l <= n-1 ) {
  58. cout << l+1 << endl ;
  59. }
  60. else {
  61. cout << -1 << endl ;
  62. }
  63. }
  64.  
  65. return 0 ;
  66. }
Success #stdin #stdout 0.01s 5332KB
stdin
2 4
5 10
1
2
7
10
stdout
1
1
1
2