给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M 现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。 输入描述: 输入第一行给出两个正整数N和p,其中N(<= 105)是输入的正整数的个数,p(<= 109)是给定的参数。第二行给出N个正整数,每个数不超过109。 输出描述: 在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。 输入例子: 10 82 3 20 4 5 1 6 7 8 9 输出例子: 8
#include
#include
#include
using namespace std;
int main()
{
long N,p,temp;
cin>>N>>p;
vector
for(long i=0; i cin>>temp; lvec.push_back(temp); } sort(lvec.begin(),lvec.end()); long max = 0; for(long i=0; i for( long j=i+max; j if(lvec[j] > lvec[i]*p) break; max++; } } cout< return 0; }