80分,是不是因为数太大了?
查看原帖
80分,是不是因为数太大了?
1505045
AlbertX楼主2025/8/29 09:49
#include<iostream>
using namespace std;

float a[1000001]={-1};
int n;

int find(int x){
	int l=1,r=n;
	while(l<=r){
		int mid=(l+r)/2;
		if(a[mid]==x) return mid;
		else if(a[mid]>x) r=mid-1;
		else l=mid+1;
	}
	return -1;
}

int main(){
	int m,w=0;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%f",&a[i]);
		if(a[i]==a[w])
			a[i]+=0.5;
		else
			w=i;	
	}
	for(int i=0;i<m;i++){
		int x;
		scanf("%d",&x);
		printf("%d ",find(x));
	}
	return 0;
}
2025/8/29 09:49
加载中...