题目描述
小怡开了一家蛋糕店,她有n个顾客,每位顾客i都有一个喜好的甜度值a[i](1<=i<=n)。甜度为k的蛋糕,当且仅当|a[i]-k|<=p 时,顾客i才能得到满足。给定n个顾客喜好的甜度值,小怡想知道最多可以让多少顾客得到满足。
输入
第一行两个数n, p(1≤n,p≤1000000),含义如题面描述。
接下来一行n个整数,表示顾客喜好的甜度值a[i] (1≤a[i]≤1000000)。
输出
输出一个数字,表示最多有多少顾客同时得到满足。
样例输入复制
6 2 1 5 3 2 4 6
样例输出复制
5
提示
甜度调成3或4,都可以满足5名顾客。
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 100000;
int n, p;
int a[maxn];
int k;
bool cmp(int b)
{
return abs(k - a[b]) <= p;
}
int main()
{
cin >> n >> p;
for (int i = 1; i <= n; i++) cin >> a[i];
int ans = 0;
sort(a + 1, a + n + 1);
for (k = 1; k <= n; k++)
{
int Max = count_if(a + 1, a + n + 1, cmp);
if (Max > ans)ans = Max;
// cout<<ans<<endl;
}
cout << ans << endl;
return 0;
}