美文网首页
2018-10-22 完美数列

2018-10-22 完美数列

作者: 菜鸡飞 | 来源:发表于2018-10-22 08:11 被阅读0次

    题目描述

    给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美数列。
    现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。

    输入描述

    输入第一行给出两个正整数N和p,其中N(<= 10^5)是输入的正整数的个数,p(<= 10^9 )是给定的参数。第二行给出N个正整数,每个数不超过10^9。

    输出描述

    在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。

    输入例子

    10 8
    2 3 20 4 5 1 6 7 8 9

    输出例子

    8

    C++解法

    #include<iostream>
    #include<algorithm>
    const int N = 100005;
    int a[N];
    using namespace std;
    
    int main(){
        long n;long long p;
        int m = 0;
        cin>>n>>p;
        for(int i=0;i<n;i++){
            cin>>a[i];
        }
         sort(a,a+n);
         for(long i = 0;i<n;i++){
            for(long j=i+m;j<n;j++){
                if(a[j]> a[i]*p ) break;
                m++;
             }
         
         }
         cout<<m;
         return 0;
    }
    

    相关文章

      网友评论

          本文标题:2018-10-22 完美数列

          本文链接:https://www.haomeiwen.com/subject/mqdwzftx.html