求教
查看原帖
求教
1543038
dqh_0616楼主2024/12/6 22:55

64pts:
结果:wa ac ac ac ac tle

#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[1000007],q;
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	for(int i=1;i<=m;i++){
		scanf("%d",&q);
		int l=1,r=n;
		if(a[1]<=q&&q<=a[n])
		
			while(l<r){
				int mid=(l+r)/2;
				if(q<a[mid])
					r=mid-1;
				else if(q>a[mid])
					l=mid+1;
				else
					l=r=mid;
			}
		
		if(l!=r||a[l]!=q)
			printf("-1 ");
		else{
			while(a[l-1]==a[l])l--;
			printf("%d ",l);
		}
			
	}
	return 0;
}
2024/12/6 22:55
加载中...