具体思路与二分查找很像,只有细节不一样
下面是分析
#include<iostream>
#include<string>
#include<algorithm>
#include<bits/stdc++.h>
#include<stack>
#include<set>
#include<vector>
#include<map>
#include<queue>
#include<deque>
#include<cctype>
#include<unordered_set>
#include<unordered_map>
#include<fstream>
using namespace std;
int main(){
int n,p;
cin>>n>>p;
int sum=0;
vector<int>a;
for(int i=0;i<n;i++){
int x;
cin>>x;
a.push_back(x);
}
sort(a.begin(),a.end());
int l=0,r=n-1;
while(l<r){
int mid=l+(r-l)/2;
if(a[mid]>=p){
r=mid;
}
else{
l=mid+1;
}
}
cout<<l;
return 0;
}