每日一题08_数的范围

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int shu,num;
const int N=100010;
int shuzu[N];
int shunum;
int main()
{
cin>>shu>>num;
for(int i=0;i<shu;i++)
{
cin>>shuzu[i];
}
for(int i=0;i<num;i++)
{
cin>>shunum;
int l=0,r=shu-1;
while(l<r)
{
int mid=(l+r)/2;
if(shuzu[mid]>=shunum)
{
r=mid;
}
else
{
l=mid+1;
}
}
if(shuzu[l]==shunum)
{
cout<<l<<' ';
r=shu-1;
while(l<r)
{
int mid=(l+r+1)/2;
if(shuzu[mid]<=shunum)
{
l=mid;
}
else
{
r=mid-1;
}
}
cout<<r<<endl;
}
else
{
cout<<-1<<' '<<-1<<endl;
}
}
}

猜你喜欢

转载自www.cnblogs.com/Nicela/p/13403901.html