#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
int* a;
int* b;
int n;
int qs(int start, int end, int t) {
int l = start, r = end;
while (l <= r) {
int mid = l + (r - l) / 2;
if (a[mid] < t) {
l = mid + 1;
}
else if (a[mid] > t) {
r = mid - 1;
}
else {
while (a[mid - 1] == t && mid >= 1) {
mid--;
}
return mid;
}
}
if (l > r) {
return -1;
}
}
int main(){
int m;
scanf_s("%d%d", &n, &m);
a = (int*)malloc(n * sizeof(int));
b = (int*)malloc(m * sizeof(int));
for (int i = 0; i < n; i++) {
scanf_s("%d", a + i);
}
for (int i = 0; i < m; i++) {
scanf_s("%d", b + i);
int x = qs(0, n - 1, b[i]);
if (x == -1) {
printf("%d ", -1);
}
else {
printf("%d ", x + 1);
}
}
free(a);
free(b);
return 0;
}
是搜索部分还要再改吗?