// 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;
}