题目描述: 链接:https://ac.nowcoder.com/acm/contest/88642/A 来源:牛客网

石头要去和朋友打篮球。但石头不会,于是石头准备从最简单的运球练起。现在石头正前方有 n 个路障,设每个路障在 x轴 上的坐标为 x i ​ ,石头要求相邻路障之间的间隔都为 1 1 ,在坐标轴上连续,但是石头赶时间,对于每个路障,石头都最多只会向左或向右移动一次(即将其坐标

x i ​ 改为 − 1 x i ​ −1 或 + 1 x i ​ +1 ),现石头要问问你,是否能将所有的路障调整好?

思路: 贪心

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin >> n;
    vector<int> a(n + 1);
    sort(a.begin() + 1, a.end());
    for(long long i = 1, pre = INT_MAX; i <= n; i++){
        cin >> a[i];
        if(a[i] >= pre + 4){
            cout << "No";
            return 0;
        }
//         cout << pre << " ";
        pre = a[i];
    }
    cout << "Yes";
}