asda

刘宇帆  •  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"; 

}


评论: