func_code_string: #include <bits/stdc++.h>   using namespace std;   long long a, b, k, t, maxi, l, r, i, ans;   long long dp0[200005];   long long dp1[200005];   long long s[200005];   int main() {     cin >> a >> b >> k >> t;     maxi = k * t;     dp1[maxi] = 1;     while (t) {       t--;       for (i = 0; i <= 2 * maxi; i++) {         dp0[i] = dp1[i];         dp1[i] = 0;       }       for (i = 0; i <= 2 * maxi; i++) {         l = i - k;         if (l >= 0) {           dp1[l] += dp0[i];           if (dp1[l] > 1000000007) dp1[l] -= 1000000007;         }         r = i + k + 1;         if (r <= 2 * maxi) {           dp1[r] -= dp0[i];           if (dp1[r] < 0) dp1[r] += 1000000007;         }       }       for (i = 1; i <= 2 * maxi; i++) {         dp1[i] += dp1[i - 1];         if (dp1[i] > 1000000007) dp1[i] -= 1000000007;       }     }     s[0] = dp1[0];     for (i = 1; i <= 2 * maxi; i++) {       s[i] = s[i - 1] + dp1[i];       if (s[i] > 1000000007) s[i] -= 1000000007;     }     for (i = 0; i <= 2 * maxi; i++) {       r = a - b + i - 1;       if (r < 0) continue;       if (r > 2 * maxi) r = 2 * maxi;       ans += (s[r] * dp1[i]) % 1000000007;       if (ans > 1000000007) ans -= 1000000007;     }     cout << ans;     return 0;   }   