#include <bits/stdc++.h>
using namespace std;
//判断是否有交集
bool help0(vector<long long>& vec1, vector<long long>& vec2){
if(vec1[0] < vec2[0] && vec1[1] < vec2[0]){
return false;
}
if(vec1[0] > vec2[1] && vec1[1] > vec2[1]){
return false;
}
return true;
}
int main(){
// freopen("123123.txt", "r", stdin);
long long n = 0, x = 0;
cin >> n >> x;
vector<vector<long long>> vec;
vec.reserve(n);
for(int i = 0; i < n; ++i){
long temp = 0;
cin >> temp;
vec.push_back(vector<long long>{temp-x, temp+x});
}
vector<long long> help;
long long ans = 0;
for(auto& v : vec){
if(help.empty()){
help = v;
continue;
}
if(help0(v, help)){
help[0] = ::max(help[0], v[0]);
help[1] = ::min(help[1], v[1]);
}else{
help = v;
++ans;
}
}
cout << ans << endl;
return 0;
} 第三题“病毒”通过0%,我不理解,求大佬帮忙看一下
#深信服笔试题#