0
已解决
刘济同
修练者
修练者
为什么我的程序九十分?
#include<iostream>
using namespace std;
int n,m,t;
int a[100010];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
while(m--){
cin>>t;
int l=1,r=n,mid;
while(l<r){
mid=(l+r)/2;
if(a[mid]>t) r=mid;
else l=mid+1;
}
if(l==n) cout<<-1<<endl;
else cout<<r<<endl;
}
}
1
已采纳
张瑀涵
高级光能
高级光能
1.r=n改成r=n+1
2.if(l==n) cout<<-1<<endl;
else cout<<r<<endl;
改成
if(a[l]<t) cout<<-1<<endl; else cout<<l<<endl;
1
0
叶子煊
中级光能
中级光能
你有两个问题:
1、
r=n
改成
r=n+1
2、
if(l==n) cout<<-1<<endl;
else cout<<r<<endl;
改成
if(a[l]<t) cout<<-1<<endl;
else cout<<l<<endl;
就可以AC了
望采纳!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0