二分搜索求助...第一个点WA了...
查看原帖
二分搜索求助...第一个点WA了...
307612
Brunhild楼主2020/7/26 22:32

RT

#include <bits/stdc++.h>
using namespace std;
int a[1000020];
int n,ans1;
int k,t;
int l,r,mid;
bool check1(int i){
	return a[i]<t;
}
int twofen()
{
	cin>>t;
	if (t<a[1]||t>a[n]){
		cout<<-1;
		return 0;
	}
	l=1;
	r=n;
	while (l<=r)
	{
		mid=(l+r)>>1;
		if (check1(mid))
		{
			ans1=mid;
			l=mid+1;
		}
		else r=mid-1;
	}
	if (a[ans1+1]==t)
	cout<<ans1+1;
	else{
		cout<<-1;
	}
}
int main()
{
	cin>>n>>k;
	for (int i=1;i<=n;++i) cin>>a[i];
	for (int i=1;i<=k;i++){
		twofen();
		cout<<" ";
	}
}

除了第一个点...其他点都过了...

哪位巨佬可以帮忙找下错啊...

2020/7/26 22:32
加载中...