刘宇帆 • 17天前
#include<bits/stdc++.h>
using namespace std;
int n,m,a[100005],p,mi;
int cm(int l,int r,int z){
while(l<=r){
mi=(l+r)/2;
if(a[mi]>z){
r=mi-1;
}else if(a[mi]<=z){
if(a[mi+1]<=z){
l=mi+1;
continue;
}else {
return mi;
}
}
}
return -1;
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>a[i];
}
a[n]=INT_MAX;
for(int i=0;i<m;i++){
cin>>p;
int x=0,y=n-1;
cout<<a[cm(x,y,p)]<<"\n";
}
}
评论: