func_code_string: #include <bits/stdc++.h>   using namespace std;   inline long long read() {     char ch = getchar();     long long nega = 1;     while (!isdigit(ch)) {       if (ch ==  - ) nega = -1;       ch = getchar();     }     long long ans = 0;     while (isdigit(ch)) {       ans = ans * 10 + ch - 48;       ch = getchar();     }     if (nega == -1) return -ans;     return ans;   }   inline long long min(long long x, long long y, long long z) {     return min(x, min(y, z));   }   inline long long max(long long x, long long y, long long z) {     return max(x, max(y, z));   }   inline long long add(long long x, long long y) {     return x + y >= 998244353 ? x + y - 998244353 : x + y;   }   inline long long add(long long x, long long y, long long z) {     return add(add(x, y), z);   }   inline long long sub(long long x, long long y) {     return x - y < 0 ? x - y + 998244353 : x - y;   }   inline long long mul(long long x, long long y) {     return 1LL * x * y % 998244353;   }   inline long long mul(long long x, long long y, long long z) {     return mul(mul(x, y), z);   }   signed main() {     long long a, b, c, d;     cin >> a >> b >> c >> d;     long long ans = 0;     for (long long i = c; i <= d; i++) {       long long m = i - b + 1;       if (m >= a && c - b + 1 > 0) {         long long l = max(a, i - c);         long long d = c - i + l, e = c - i + min(b, m);         if (e >= d) ans += (e + d) * (e - d + 1) / 2;       }       long long L = b - max(m, a - 1);       if (c - b + 1 >= 0 && b > m) ans += L * (c - b + 1);     }     cout << ans << endl;     return 0;   }   