#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int n;
long long p;
scanf("%d%lld", &n, &p);
vector <int> a(n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
sort(a.begin(),a.end());
int res=0,temp=0;
for(int i=0;i<n;i++){ //i为数组段开始的指针,j为数组段结束的指针
for(int j=i+res;j<n;j++){ //若j为i+res时不满足,则说明这个i时j已不能后移,break,i前移
if(a[j]<=a[i]*p){
temp=j-i+1; //当前数组段长度
if(temp>res) //res记录最大的数组长度
res=temp;
}else{ break;}
}
}
cout<<res;
system("pause");
return 0;
}
PAT 1030 完美数列 (25 分) [two pointers]
最新推荐文章于 2024-08-25 06:11:42 发布