zoukankan      html  css  js  c++  java
  • PAT 1030. 完美数列

    PAT 1030. 完美数列

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

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

    输入格式:

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

    输出格式:

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

    输入样例:

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

    输出样例:

    8
    

    自己的代码

    #include<iostream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    int main(){
        double p;
    	int n,m,N=0; cin>>n>>p; 
    	vector<int> vi(n,0);
    	for(int i=0;i<n;i++)
    	cin>>vi[i];
    	sort(vi.begin(),vi.end());
    	m=-1; int first,last;
    	for(int j=0;j<n-N;j++){
    	if(m==vi[j]) continue;
    	else {
    	m=vi[j];
    	first=j;	
    	}
    	for(int i=n-1;i>=j;i--)
    	if(vi[i]<=m*p) {
        last=i; break;
    	} 
    	if(last-first+1>N)
    	N=last-first+1; 
    	}
    	cout<<N<<endl; 
    	return 0;
    } 
    
  • 相关阅读:
    HDU1007
    DFA
    netstat
    Sangfor
    JS 基础逻辑关系
    正则表达式
    JS中的DOM
    HTML、CSS、JS面试题
    JS作用域和作用域链
    JS String与正则表达式
  • 原文地址:https://www.cnblogs.com/A-Little-Nut/p/8098972.html
Copyright © 2011-2022 走看看