那么短的代码 MLE??萌新求助……
查看原帖
那么短的代码 MLE??萌新求助……
937055
CCF_NOI_wyz66楼主2023/3/16 21:34
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000010;
int a[maxn],n,m,q;
int read(){
	int x=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9'){
		if(c=='-') f=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9'){
		x=x*10+c-'0';
		c=getchar();
	}
	return x*f;
}
int find(int x,int l,int r){
	if(a[l] == x) return l;
	if(l>=r) return -1;
	int mid = l+((r-1)>>1);
	if(a[mid] >= x) return find(x,l,mid);
	else return find(x,mid+1,r);
}
int main(){
	n = read(),m = read();
	for(int i=1;i<=n;i++) a[i] = read();
	for(int i=1;i<=m;i++){
		q = read();
		int ans = find(q,1,n+1);
		printf("%d ",ans);
	}
	return 0;
}

2023/3/16 21:34
加载中...