【求助】为什么最后一个询问答案输出不出来
查看原帖
【求助】为什么最后一个询问答案输出不出来
985457
caokang楼主2024/1/22 18:43

测试样例最后一个询问输出不出来,和示例代码一样,不知道为什么。 代码:

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1000010;
int a[maxn], n, m, q;
int find(int x){
	int l = 1, r = n + 1;
	while(l < r){
		int mid = l + ((r - 1) >> 1);
		if(a[mid] >= x) r = mid;
		else l = mid + 1;
	}
	if(a[l] == x) return l; 
	else return -1;
}
int main(){
	scanf("%d %d",&n, &m);
	for(int i = 1; i <= n; i++) cin >> a[i];
	for(int i = 1; i <= m; i++){
		cin >> q;
		int ans = find(q);
		printf("%d ", ans);
	}
	return 0;
}

输入:

  • 11 3
  • 1 3 3 3 5 7 9 11 13 15 15
  • 1 3 6

输出: 1 2 最后一个结果一直不输出

2024/1/22 18:43
加载中...