PAT 甲级 A1085 (2019/02/20)

Posted zjsaipplp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT 甲级 A1085 (2019/02/20)相关的知识,希望对你有一定的参考价值。

#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN = 100010;
int n, p, a[MAXN];
int binarySearch(int i, long long x){
    if(a[n - 1] <= x) //如果最大的数比x小,则返回n 
        return n; 
    int left = i + 1;
    int right = n - 1;          //在区间[i+1, n-1]内查找 
    int mid;
    while(left < right){
        mid = (left + right) / 2;
        if(a[mid] <= x)         //若区间中间的数小于x,则这个数在mid后面 
            left = mid + 1;//左端点记为mid+1 
        else                    //若区间中间的数大于x,则这个数在mid前面  
            right = mid;   //右端点记为mid 
    }
    return left;
}
int main(){
    scanf("%d %d", &n, &p);
    for(int i = 0; i < n; i++){
        scanf("%d", &a[i]);
    }
    sort(a, a + n);//不加cmp,默认从小到大
    int count = 1; 
    for(int i = 0; i < n; i++){
        int  j = binarySearch(i, (long long)a[i] * p);
        count = max(count, j - i);
    }
    printf("%d", count);
    return 0;
}

以上是关于PAT 甲级 A1085 (2019/02/20)的主要内容,如果未能解决你的问题,请参考以下文章

PAT 甲级 A1067 (2019/02/20)

PAT 甲级 A1044 (2019/02/20)

PAT 甲级 A1037 (2019/02/20)

PAT 甲级 A1010 (2019/02/20)

pat甲级75分在啥水平

pat甲级没做出来没有分吗