patB1030 1085 完美数列 应用二分法 算法下P165 todo 可暂不理会

//patB1030 1085 Perfect Sequence  完美数列 应用二分法  算法下P165 todo 可暂不理会
#include <iostream>
#include <algorithm>
using namespace std;
int bSearch(int L,int R,long long key,long long arr[]){
    while(L <= R){ //todo L < R  结果将部分正确  应该是返回位置与算法下不同
//        int mid = (L+R) / 2;
        int mid = L +(R-L)/2;
        if(arr[mid] == key)  return mid;
        else if(key<arr[mid]) R = mid - 1;
        else L =mid +1;
    }
    return R;
}
int main(){
    long long N,p;
    long long arr[100010];
    cin>>N>>p;
    for(int i=0;i<N;++i) cin>>arr[i];
    sort(arr,arr+N);
    int max= 1;
    for(int i=0;i<N;++i){
        int k = bSearch(i+1,N-1,p*arr[i],arr);
        if(max<k-i+1)  max = k-i+1;
    }
    cout<<max<<endl;
    return 0;
}


全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务