题意
给你n和d,然后按顺序给出n个数轴上的点,现在想加入一些点,要求这些点跟距离他最近的那个点的距离为d,问能加入多少个不同的点。
思路
对于一个数,如果他减去他的前一个大于2d 说明我可以放2个,如果等于2d说明我只能放a[i] - d, a[i-1] + d 那个位置,然后第一个和最后一个都可以放
代码
#include <bits/stdc++.h>
using namespace std;
int a[111];
int main()
{
int n,d,ans = 0;
cin >> n >> d;
for (int i = 0; i < n; i++)
cin >> a[i];
for (int i = 1; i < n; i++) {
if (a[i] - a[i - 1] == d * 2)
ans += 1;
else if (a[i] - a[i - 1] > d * 2)
ans += 2;
}
cout << ans +2<< endl;
}