OIG II - lis

// https://szkopul.edu.pl/problemset/problem/Thl2MFQAGbo_rko6UeBROhEe/site/?key=statement

#include <bits/stdc++.h>

using namespace std;

constexpr int sizik = 1000 * 1001;

#define int long long

#define ar std::array
#define pr std::pair
#define vec std::vector

typedef long long ll;
typedef vec<vec<int>> _kra;

void solve() {
    int n, k, i, j;
    std::cin >> n >> k >> i >> j;

    int ans;
    if (i > k) {
        ans = ((j - k) * (j - k + 1) - (i - k) * (i - k - 1)) / 2;
    } else {
        if (j < k) {
            ans = j * (j + 1);
            ans -= i * (i - 1);
            ans += (n - k) * (j - i + 1);
            ans /= 2;
        } else {
            ans = ((j - k) * (j - k + 1));
            ans += n * (n + 1);
            ans -= (n - k) * (n - k + 1);
            ans -= (i + n - k) * (i + n - k - 1);
            ans += (n - k) * (n - k + 1);
            ans /= 2;
        }
    }

    std::cout << ans << '\n';
}

int32_t main() {
    std::ios_base::sync_with_stdio(0);
    std::cin.tie(0);
    std::cout.tie(0);

    int t = 1;
    // std::cin >> t;

    for (; t > 0; t--) {
        solve();
    }

    return 0;
}