c++16分二分求助!
查看原帖
c++16分二分求助!
372336
一个句号楼主2023/4/30 08:09

134WA,5TLE,2AC

#include<iostream>
#include<cstdio>
#define ll  long long 
using namespace std;

int n,m;
ll a[1000006],x;
ll find(ll x){
	ll l=1,r=n;
	while(l<=r){
		if(l==r&&a[l]!=x)
		return -1;
		ll mid=(l+r)>>1;
		if(a[mid]>x)r=mid;
		if(a[mid]<x)l=mid+1;
		if(a[mid]==x){
			while(a[mid]==x){
				mid--;
			}
			return mid+1;
		}
	}
		
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		scanf("%lld",&a[i]);
	for(int i=1;i<=m;i++){
		scanf("%lld",&x);
		x=find(x);
		printf("%lld ",x);
	}
	
	return 0;
} 
2023/4/30 08:09
加载中...