全re了
查看原帖
全re了
734100
JNTM114514楼主2022/9/15 23:54
#include <iostream>
using namespace std;
const int N = 100005;
int a1[N], a2[N], n1, cnt, Max, m, m1, m3;
int Binary_search(int a[N], int n, int size) {
	int l = 0, r = size - 1;
	while(l <= r)
	{
		int m = l + ((r - l) / 2);
		if (a[m] > n) r = m - 1;
		else if (a[m] < n) l = m + 1;
		else return m + 1;
	}
	return -1;
}
int main() {
	scanf("%d%d", &m, &m1);
	for (int i = 0; i < m; i++) {
		scanf("%d", &m3);
		if (Max < m3) Max = m3;
		a2[m3]++;
	}
	for (int i = 0; i < Max+1; i++) {
		if(a2[i]>0) a1[cnt++] = i;
	}
	for(int i = 0; i < m1; i++){
		scanf("%d", &n1);
		printf("%d ", Binary_search(a1, n1, m));
	}
	return 0;
}
2022/9/15 23:54
加载中...