func_code_string: #include <bits/stdc++.h>   using namespace std;   pair<int, int> operator+(const pair<int, int> &a, const pair<int, int> &b) {     return make_pair(a.first + b.first, a.second + b.second);   }   pair<int, int> operator-(const pair<int, int> &a, const pair<int, int> &b) {     return make_pair(a.first - b.first, a.second - b.second);   }   pair<int, int> &operator+=(pair<int, int> &a, const pair<int, int> &b) {     a.first += b.first;     a.second += b.second;     return a;   }   pair<int, int> &operator-=(pair<int, int> &a, const pair<int, int> &b) {     a.first -= b.first;     a.second -= b.second;     return a;   }   template <class T, class U>   bool cmp_second(const pair<T, U> &a, const pair<T, U> &b) {     return a.second < b.second;   }   template <class T>   T gcd(T a, T b) {     a = abs(a);     b = abs(b);     while (b) {       T t = b;       b = a % b;       a = t;     }     return a;   }   template <class T>   pair<T, T> ext_gcd(T a, T b) {     T a0 = 1, a1 = 0, b0 = 0, b1 = 1;     if (a < 0) {       a = -a;       a0 = -1;     }     if (b < 0) {       b = -b;       b1 = -1;     }     while (b) {       T t, q = a / b;       t = b;       b = a - b * q;       a = t;       t = b0;       b0 = a0 - b0 * q;       a0 = t;       t = b1;       b1 = a1 - b1 * q;       a1 = t;     }     return make_pair(a0, a1);   }   inline int sg(int x) { return x ? (x > 0 ? 1 : -1) : 0; }   int main(void) {     int len, skip;     scanf( %d %d , &(len), &(skip));     len++;     skip++;     long long sol = 0;     for (int a = skip; a <= len - a; a++) {       int b = len - a;       int ab3 = a * b * 3;       int cnt = 0;       for (int c = skip; c <= len - skip; c++) {         int dmax = (ab3 - 1) / (a + c) - b;         dmax = min(dmax, len - skip);         dmax = max(dmax, skip - 1);         if (dmax < skip) break;         cnt += dmax - (skip - 1);       }       sol += cnt + (a < len - a ? cnt : 0);     }     sol *= 3;     cout << sol << endl;     return 0;   }   