Submission #1269552

#TimeUsernameProblemLanguageResultExecution timeMemory
1269552lucasmin2011Rabbit Carrot (LMIO19_triusis)C++20
0 / 100
1 ms328 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int N;
    long long U, D;
    cin >> N >> U >> D;
    vector<long long> h(N);
    for (int i = 0; i < N; i++) cin >> h[i];

    auto canCross = [&](vector<long long>& arr) {
        for (int i = 0; i + 1 < N; i++) {
            long long diff = arr[i+1] - arr[i];
            if (diff > U || diff < -D) return false;
        }
        return true;
    };

    if (canCross(h)) {
        cout << 0 << "\n";
        return 0;
    }

    for (int i = 0; i + 1 < N; i++) {
        long long diff = h[i+1] - h[i];
        if (diff > U || diff < -D) {
            {
                long long old = h[i];
                h[i] = h[i+1];
                if (canCross(h)) {
                    cout << 1 << "\n";
                    return 0;
                }
                h[i] = old;
            }
            {
                long long old = h[i+1];
                h[i+1] = h[i]; // make equal (safe choice)
                if (canCross(h)) {
                    cout << 1 << "\n";
                    return 0;
                }
                h[i+1] = old;
            }
            cout << 2 << "\n";
            return 0;
        }
    }

    cout << 2 << "\n";
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...