func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, r, s;   long long F[10005] = {1}, I[10005];   long long inv(long long a) {     long long ans = 1;     for (int k = 998244353 - 2; k; k >>= 1) {       if (k & 1) ans = (ans * a) % 998244353;       a = a * a % 998244353;     }     return ans;   }   long long C(int n, int m) {     return n < m ? 0 : F[n] * I[m] % 998244353 * I[n - m] % 998244353;   }   long long calc(int s, int n, int r) {     if (!n) return !s && r >= 0;     long long ans = 0;     for (int i = 0; i <= n; ++i) {       long long t = C(s - r * i + n - 1, n - 1) * C(n, i) % 998244353;       if (i & 1)         ans = (ans + 998244353 - t) % 998244353;       else         ans = (ans + t) % 998244353;     }     return ans;   }   int main() {     scanf( %d%d%d , &n, &s, &r);     for (int i = 1; i < 10005; ++i) F[i] = F[i - 1] * i % 998244353;     I[10005 - 1] = inv(F[10005 - 1]);     for (int i = 10005 - 1; i; --i) I[i - 1] = I[i] * i % 998244353;     long long ans = 0;     for (int i = max((s + n - 1) / n, r); i <= s; ++i)       for (int c = 1; c <= n && c * i <= s; ++c) {         ans = (ans +                calc(s - c * i, n - c, i) * C(n - 1, c - 1) % 998244353 * inv(c)) %               998244353;       }     ans = ans * inv(C(s - r + n - 1, n - 1)) % 998244353;     printf( %lld n , ans);     return 0;   }   