样例也过了,为啥全RE?
查看原帖
样例也过了,为啥全RE?
372980
kmhgk楼主2022/8/10 15:04
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<cmath>
using namespace std;
int a[1000086];
int n,m;
void fn(int x){
	int l=1,r=x;
	bool b=false;
	int mid=(l+r)/2;
	if(a[mid]==x){
		cout<<mid<<" ";
		return;
	}
	while(l<=r){
		if(x<a[mid]){
			r=mid;
			mid=(l+r)/2;
		}
		if(x>a[mid]){
			l=mid;
			mid=(l+r)/2;
		}
		if(a[mid]==x){
			b=true;
			cout<<mid<<" ";
			return;
		}
		if(l+1==r&&a[l]!=x&&a[r]!=x){
			cout<<-1;
			return;
		}
	}
}
int main(){
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
	
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	int x;
	for(int i=1;i<=m;i++){
		scanf("%d",&x);
		fn(x);
	}
// fclose(stdin);
// fclose(stdout);
return 0;
}

2022/8/10 15:04
加载中...