func_code_string: #include <bits/stdc++.h>   using namespace std;   long long arr[1000];   long long seg[1000005];   long long gcd(long long a, long long b) {     if (b == 0) {       return a;     }     return gcd(b, a % b);   }   void buildtree(long long start, long long end, long long treenode) {     if (start == end) {       seg[treenode] = arr[start];       return;     }     long long mid = (start + end) / 2;     buildtree(start, mid, 2 * treenode);     buildtree(mid + 1, end, 2 * treenode + 1);     seg[treenode] = gcd(seg[2 * treenode], seg[2 * treenode + 1]);     return;   }   long long query(long long left, long long right, long long start, long long end,                   long long treenode) {     long long mid = (start + end) / 2;     if (start > right || end < left) {       return 0;     }     if (start >= left && end <= right) {       return seg[treenode];     }     long long ans = gcd(query(left, right, start, mid, 2 * treenode),                         query(left, right, mid + 1, end, 2 * treenode + 1));     return ans;   }   bool check(long long n, long long k) {     long long num1 = n;     long long sum1 = 0;     long long sum2 = 0;     while (n > 0) {       if (n >= k) {         n = n - k;         sum1 += k;       } else {         sum1 += n;         n = 0;         break;       }       if (n < 10) {         continue;       }       sum2 += n / 10;       n = n - n / 10;     }     return sum1 >= sum2;   }   long long dp[101][101][101];   int solvedp(long long i, long long j, long long* pref, long long* suf,               long long B, long long* arr) {     if (i == j) {       return 0;     }     if (B < 0) {       return INT_MIN;     }     if (dp[i][j][B] != -1) {       return dp[i][j][B];     }     long long ans = 0;     for (int k = i + 1; k < j - 1; k++) {       if (i == 0) {         if (!pref[k] && !suf[k + 1]) {           ans = max((long long)1 + solvedp(k + 1, j, pref, suf,                                            B - abs(arr[k + 1] - arr[k]), arr),                     ans);         }       } else {         if (!(pref[k] - pref[i - 1]) && !suf[k + 1]) {           ans = max((long long)1 + solvedp(k + 1, j, pref, suf,                                            B - abs(arr[k + 1] - arr[k]), arr),                     ans);         }       }     }     dp[i][j][B] = ans;     return dp[i][j][B];   }   map<string, int> m1;   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     long long n;     cin >> n;     vector<int> a = {0, 4, 10, 20, 35, 56, 83, 116, 155, 198, 244, 292};     if (n < a.size())       cout << a[n];     else       cout << a[11] + 49 * (n - 11);     return 0;   }   