Sample Input
10 8
2 3 20 4 5 1 6 7 8 9
Sample Output
8
思路:
可以排序!可以排序!可以排序!
然后做双指针,i先进,然后不符合则j进。动态更新答案。
代码
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <string>
#include <cstring>
using namespace std;
#define endl '\n'
typedef long long ll;
ll a[100005];
int main()
{
ll n, p;
cin >> n >> p;
for (int i = 0; i < n; ++i)
cin >> a[i];
sort(a, a + n);
ll i = 0, j = 0;
ll ans = -1;
while (i < n && j < n)
{
while (j < n && a[i] * p >= a[j])
{
ans = max(ans, j - i + 1);
j++;
}
i++;
}
cout << ans << endl;
return 0;
}