func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 2 * 1e5 + 100, mod = 1e9 + 7;   int n, k, a, b;   int dp[5010][5010], pr[5010][5010];   int add(int a, int b) {     a += b;     if (a < 0) a += mod;     if (a >= mod) a -= mod;     return a;   }   int main() {     scanf( %d%d%d%d , &n, &a, &b, &k);     dp[0][a] = 1;     for (int i = 0; i <= k; i++) {       if (i != 0) {         for (int j = 1; j <= n; j++) {           if (j > b) {             int t = ((j + b) >> 1) + 1;             dp[i][j] += add(add(pr[i - 1][n], -pr[i - 1][t - 1]), -dp[i - 1][j]);           } else if (j < b) {             int t = ((j + b - 1) >> 1);             dp[i][j] += add(pr[i - 1][t], -dp[i - 1][j]);           }         }       }       for (int j = 1; j <= n; j++) {         pr[i][j] = add(pr[i][j - 1], dp[i][j]);       }     }     cout << pr[k][n] % mod;   }   