1030. 完美数列(25)
来源:互联网 发布:大数据的结果展现方式 编辑:程序博客网 时间:2024/06/15 10:34
给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美数列。
现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。
输入格式:
输入第一行给出两个正整数N和p,其中N(<= 105)是输入的正整数的个数,p(<= 109)是给定的参数。第二行给出N个正整数,每个数不超过109。
输出格式:
在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。
输入样例:10 82 3 20 4 5 1 6 7 8 9输出样例:
8
#include<iostream>#include<stdlib.h>#include<cmath>int cmp(const void * a, const void * b);int main(){using namespace std;int n;double p;cin >> n>>p;int max = 0;int tmp = 0;double *num = new double[n];for (int i = 0; i < n; i++)cin >> num[i];qsort(num, n, sizeof(double), cmp);//for (int i = 0; i < n; i++)//cout << num[i] << " ";int i = 0; int j = 0;while (j<n){if (num[j] <= num[i] * p)j++;else{tmp = j - i;if (tmp > max)max = tmp;i++; }if (j == n){tmp = j - i;if (tmp > max)max = tmp;i++;}}cout << max;}int cmp(const void * a, const void * b){if (fabs(*(double*)a - *(double *)b)<1 * exp(-20))return 0;elsereturn(((*(double*)a - *(double*)b)>0) ? 1 : -1);}
阅读全文
0 0
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- 1030. 完美数列(25)
- C# DLL HRESULT:0x8007000B
- 【JZOJ 5484】 快乐树
- cadence vmanager(二)vmanager工作模式
- Unity Sample Project Tank!!!详解(零) Tank!!!简介
- 泛型
- 1030. 完美数列(25)
- 设计模式—观察者模式(不)
- 快速幂取模&扩展欧几里得算法
- Spring和MyBatis环境整合
- 一点一点学写Makefile(6)-遍历当前目录源文件及其子目录下源文件
- hadoop 常用命令
- 轻松搞定面试中的二叉树
- JVM菜鸟进阶高手之路十四:分析篇
- 2017年11月总结