Đề: https://codeforces.com/edu/course/2/lesson/6/1/practice/contest/283911/problem/B
Em tóm tắt đề: Cho mảng a và k số để truy vấn, tìm vị trí số lớn nhất trong mảng a mà không lớn hơn số đang truy vấn.
Em làm bài này không hiểu vì sao cứ bị lỗi runtime error.
Đây là code của em. Mọi người sửa lỗi giúp em với ạ, em cảm ơn
#include <iostream>
using namespace std;
#include <vector>
int main () {
int n;
cin >> n;
int k;
cin >> k;
vector <int> arr (n);
vector <int> b(k);
for (int i = 0; i < n;i++) {
cin >> arr[i];
}
arr[-1] = INT_MIN;
arr[n]= INT_MAX;
for (int j = 0; j < k;j++) {
cin >> b[j];
if (b[j] < arr[0]) cout << 0 << endl;
else {
int l = -1;
int r = n;
while (l +1 < r) {
int mid = (l+r)/2;
if (arr[mid] <= b[j]) l = mid;
else r = mid;
}
if (arr[r] <= b[j]) cout << r+1;
else cout << l +1 << endl;
}
}
return 0;
}