答案都对,但全WA,求大佬指点
查看原帖
答案都对,但全WA,求大佬指点
1052007
wanxuhang楼主2023/8/4 22:34
#include<bits/stdc++.h>
using namespace std;
long long a[1000005];
int f1(int left,int right,long long x){
	if (left>right) return left;
	int mid=(left+right)/2;
	if (a[mid]==x) return f1(left,mid-1,x);
	else if (a[mid]>x) return f1(left,mid-1,x);
	else if (a[mid]<x) return f1(mid+1,right,x);
}
int main(){
	int n,q;
	cin>>n>>q;
	for (int i=1;i<=n;i++){
		scanf("%d",&a[i]);
	}
	for (int i=1;i<=q;i++){
		long long x;
		cin>>x;
		int ans=f1(1,q,x);
		if(x!=a[ans]) printf("-1 ");
		else(printf("%d ",ans));
	}
	
	return 0;
} 
2023/8/4 22:34
加载中...