func_code_string: #include <bits/stdc++.h>   using namespace std;   const int M = 1e9 + 7;   const int MAX_N = 1002;   int dp_end[MAX_N][MAX_N];   int dp_not[MAX_N][MAX_N];   int main() {     int n;     cin >> n;     for (int i = 1; i <= n; i++) {       dp_end[0][i] = (i + 1) / 2;       dp_not[0][i] = i / 2;     }     for (int i = 1; i <= n; i++) {       for (int j = i; j <= n; j++) {         dp_end[i][j] = 1 + dp_not[i - 1][j] + dp_end[i][j - 1];         if (i - 1 >= j) {           dp_end[i][j] =               max(dp_end[i][j], 1 + dp_not[i][j - 1] + dp_end[i - 1][j]);         }         dp_end[i][j] %= M;         dp_not[i][j] = dp_end[i][j - 1] + dp_end[i - 1][j];         dp_not[i][j] %= M;       }     }     cout << dp_end[n][n] << endl;     return 0;   }   