zoukankan      html  css  js  c++  java
  • 1030 完美数列 (25分)

    给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 Mm**p,则称这个数列是完美数列。

    现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。

    输入格式:

    输入第一行给出两个正整数 Np,其中 N(≤105)是输入的正整数的个数,p(≤109)是给定的参数。第二行给出 N 个正整数,每个数不超过 109。

    输出格式:

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

    输入样例:

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

    输出样例:

    8
    

    代码

    // 1030 完美数列.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
    //
    
    #include <iostream>
    #include<algorithm>
    #include<vector>
    using namespace std;
    
    int main()
    {
    	int n, p;
    	cin >> n >> p;
    	vector<int> v;
    	int tmp;
    	for (int i = 0; i < n; i++) {
    		cin >> tmp;
    		v.push_back(tmp);
    	}
    	sort(v.begin(),v.end());
    	int idxm=0, idxM=v.size()-1;
    	int cnt = 0;
    	while (v[idxM] > (v[idxm] * p)) {
    		if (cnt % 2 == 0) {
    			idxm++;
    		}
    		else {
    			idxM--;
    		}
    		cnt++;
    	}
    	cout << idxM - idxm+1;
    	return 0;
    }
    
    
  • 相关阅读:
    JQ之html,text,val
    JQuery之编写弹窗
    DOM操作HTML元素属性
    DOM操作表格
    无缝滚动效果
    Date日期基础
    CISSP备考总结
    CISA考试大纲即将更新
    备考CISSP
    cisa备考体会
  • 原文地址:https://www.cnblogs.com/ericling/p/12340617.html
Copyright © 2011-2022 走看看