给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤m * p,则称这个数列是完美数列。
现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。
输入格式:
输入第一行给出两个正整数 N 和 p,其中 N(≤105)是输入的正整数的个数,p(≤109)是给定的参数。第二行给出 N 个正整数,每个数不超过 109。
输出格式:
在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。
输入样例:
1 | 10 8 |
输出样例:
1 | 8 |
思路:
我就不明白,我的做法有何问题?不就是找到最多的个数,使得其满足完美数列的定义。比起用双指针,直接v.front()取最小,v.back()取最大不是更简洁吗???我不想看别人的思路,我的没错啊。
代码:
1 | /*模拟题*/ |