@技术部陈老师@栗栗子@刘丹老师
题目ID1037
代码#include<bits/stdc++.h>
#include
using namespace std;
int m[100005]={0};
int a[1000005]={0};
int n,mid,ci=0;
int two(int m,int a){
int l=0,r=n;
while(l<r){
mid=(l+r)/2;
// cout<<“mid=”<<mid;
// cout<<“a=”<<a;
if(m[mid]>a){
r=mid;
}
else if(m[mid]<a){
l=mid+1;
}
else{
if(m[mid-1]==m[mid]){
mid=mid-1;
}
return mid+1;
}
}
return 0;
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>m[i];
}
int i=0;
char y=‘0’;
//do
// {
// cin>>a[i];
// int l=0,mid=0,r=n;
// //cout<<“a[i]=”<<a[i]<< typeid(a[i]).name();
// int result=two(m,a[i]);
// cout<<result<<" ";
// i++;
//}while((y=getchar())!=‘\n’);
for(i=0;;i++){
cin>>a[i];
int l=0,mid=0,r=n;
//cout<<"a[i]="<<a[i]<< typeid(a[i]).name();
int result=two(m,a[i]);
cout<<result<<" ";
if((y=getchar())=='\n')
break;
}
return 0;
}
此题/n,/r等换行符无法使用;
题目输入有问题