求助这道题调了2个小时了但还是WA
查看原帖
求助这道题调了2个小时了但还是WA
1012285
_Amy楼主2024/7/6 22:21

题目传送门

代码:

#include <bits/stdc++.h>
using namespace std;
long long a[1000010];
int n,m;

int lookup(int q){
	int x = 1,y = n + 1;
	while(x <= y){
		int ans = (y + x) / 2;
		if(a[ans] == q) return ans;
		else if(a[ans] > q) y = ans - 1;
		else x = ans + 1; 
	} 
	return -1;
}

int main()
{
	int q;
	scanf("%d%d",&n,&m);
	for(int i = 1;i <= n;i ++) scanf("%lld",&a[i]);
	sort(a + 1, a + n + 1);
	for(int i = 1;i <= m;i ++){
		scanf("%d",&q);
		printf("%d ",lookup(q));
	}
	return 0;
}
2024/7/6 22:21
加载中...