#include <iostream>
#include <algorithm>
using namespace std;
long long int a[100005],b[100005];
int N,p;
int binarySearch(int left,long long int m)
{
int mid,right=N-1;
while(left<=right)
{
mid=(left+right)/2;
if(a[mid]<m)
left=mid+1;
else if(a[mid]>m)
right=mid-1;
else
return mid;
}
return left;
}
int main()
{
scanf("%d%d",&N,&p);
for(int i=0;i<N;i++)
scanf("%lld",&a[i]);
sort(a,a+N);
for(int i=0;i<N;i++)
b[i]=a[i]*p;
int maxNum=0;
for(int j=0;j<N;j++)
{
int i=binarySearch(j,b[j]);
if(a[N-1]<=b[j]&&N-j>maxNum)
maxNum=N-j;
else if(i-j>maxNum)
maxNum=i-j;
}
cout<<maxNum<<endl;
return 0;
}
PAT_1085. Perfect Sequence
最新推荐文章于 2023-10-20 10:10:21 发布