func_code_string: #include <bits/stdc++.h>   const int mod = 1000000007;   int dp[4][200005];   int main() {     long long a, b;     scanf( %I64d %I64d , &a, &b);     long long t = sqrt(2 * (a + b));     while ((t * t + t > 2 * (a + b)) || ((t * t + 3 * t + 2) <= 2 * (a + b))) {       --t;     }     long long sum = t * (t + 1) / 2;     dp[0][0] = 1;     dp[1][0] = 1;     dp[1][1] = 1;     int cur = 0;     for (int i = 1; i <= t; ++i) {       long long temp = i * (i + 1) / 2;       for (int j = 0; j <= temp && j <= a; ++j) {         cur = i % 3;         if (j == 0) {           dp[cur][j] = 1;           continue;         }         int k = cur - 1;         if (k < 0) k = k + 3;         dp[cur][j] = dp[k][j];         if (j >= i) dp[cur][j] += dp[k][j - i];         if (dp[cur][j] >= mod) dp[cur][j] %= mod;       }     }     long long result = 0;     long long temp = sum - b;     if (temp < 0) temp = 0;     t = t % 3;     for (int i = (int)temp; i <= a; ++i) {       result += dp[t][i];       result %= mod;     }     printf( %I64d n , result);     return 0;   }   