注意:两个int数相乘,结果可能越界。
#include <iostream>
#include <algorithm>
using namespace std;
long long seq[100010]={0};
int main(){
int N,pratio,maxlen=1;
scanf("%d%d",&N,&pratio);
for(int i=0;i<N;i++)
scanf("%lld",&seq[i]);
sort(seq,seq+N);
for(int i=0,j=0;j<N;){
if(seq[i]*pratio>=seq[j]){
if(j-i+1>maxlen) maxlen=j-i+1;
j++;
}
else i++;
}
printf("%d",maxlen);
return 0;
}