使用two pointers
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int n,q;
cin>> n >> q;
long long seq[100010];
for(int i=0;i<n;i++){
scanf("%lld",&seq[i]);
}
sort(seq,seq+n);
int m=0,M=0;
long long sum;
int count=0;
while(M<n){
sum=seq[m]*q;
while(sum>=seq[M]&&M<n){
count=max(count,M-m+1);
M++;
}
m++;
}
cout<<count;
return 0;
}