题目描述
Alice和Bob在做游戏。Alice写下了 个不同的数字,又选取了数字 。Alice让Bob进行一些操作,每次操作如下:
- 选取两个整数 ,它们的差值不超过 ,即
- 删除它们中较小的数字
Bob的任务是,尽可能多的进行这样的操作。当然Bob有可能一次操作都做不了。那么,Bob最多可以进行多少次操作?
输入格式
第一行两个整数 ()
下面一行 个整数,其中第 个数为 (),代表Alice写下的数字
输出格式
输出一个整数,代表Bob最多可以进行的操作次数
测试样例
样例 1
输入:
5 1
3 7 4 1 5
输出:
2
#include <bits/stdc++.h>
#define ll long long
using namespace std;
vector<ll> a;
ll n, k, ans = 0,t;
int main() {
cin >> n >> k;
for (ll i = 0; i < n;++i){
scanf("%lld", &t);
a.emplace_back(t);
}
sort(a.begin(), a.end());
t = -(k+1);
for(auto&i:a){
if(i-t<=k)
++ans;
t = i;
}
cout << ans;
return 0;
}