咱就是说主打一个细节
数组为什么用long long 而不能用int 明明题目说是10^9呀
原因: 当m*p可能会超出int的表示范围 这也是测试点5不过的主要原因
直接贴ac代码:
#include<iostream>
#include<algorithm>
using namespace std;
const int N=100010;
long long a[N];
int main()
{
int n,p,ans=0;
cin>>n>>p;
for(int i=0;i<n;++i) cin>>a[i];
sort(a,a+n);
for(int i=0,j=0;i<n;++i)
{
while(a[i]>a[j]*p&&j<n) j++;
ans=max(ans,i-j+1);
}
cout<<ans;
return 0;
}