注意点:暴力解题(排序后直接遍历所有的可能符合条件序列)+小技巧(找到了一个局部的最大值后,下一次找的序列长度不从0开始而从局部的最大值开始)
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int i,N,p,max=1;
cin>>N>>p;
long *a=new long[N];
for(i=0;i<N;i++)
cin>>a[i];
sort(a,a+N);
for(i=0;i<N-1;i++){
for(int j=i+max;j<N;j++)
if(a[j]>a[i]*p)
break;
max=j-i;
}
cout<<max;
}