```
4 4
1 2 5 6
```
对于这组数据,答案为 `1`,而你的输出为 `2`
因为关掉中间任意一盏灯后,对于中间另一盏灯,两边的灯的距离都是 $6-1=5>4$,所以关不了两盏灯
(这能有 $70pts$真离谱)
by Wu_Ren @ 2020-11-04 19:22:34
```
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int n = 0;
int dist = 0;
int xq[100001];
int main() {
cin >> n >> dist;
for (int i = 0; i < n; i++) {
cin >> xq[i];
}
sort(xq, xq + n);
int ans = 0;
int j = 0;
int z = xq[0] + dist;
for (int i = 1; i < n - 1; i++) {
if (xq[i] > z) {
z = xq[i] + dist;
}
else {
ans++;
}
}
cout << ans << endl;
return 0;
}
```
@[Wu_Ren](/user/76039) 加上等号也是70 求大佬教
by xwzxwz321 @ 2020-11-05 21:51:25
@[xwzxwz321](/user/308657) 第一,不是大佬是即将退役的菜鸡
第二,`if (xq[i] > z)` 改为 `xq[i+1]>z`,毕竟是要相邻的两盏灯距离 $\le dist$ 才关第 $i$ 盏,与 $xq_i$ 无关
by Wu_Ren @ 2020-11-06 07:29:52