挺无语的 p要用long long存
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> v;
int main(){
int N;
long long p;
cin>>N>>p;
v.resize(N);
for(int i=0;i<N;i++){
scanf("%d",&v[i]);
}
sort(v.begin(),v.end());
int ct=0,ans=0;
for(int i=0;i<N;i++){
if(i!=0) ct--;
int x=v[i];
long long M=v[i]*p;
for(int m=i+ct;m<N;m++){
if(v[m]<=M){
ct++;
}else{
break;
}
}
if(ct>ans) ans=ct;
}
cout<<ans<<endl;
return 0;
}