#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int MOD = 1000000007; int main() { int n, s, d; cin >> n >> s >> d; vector dp(s+1, 0); dp[0] = 1; for(int i=0; i nextDp(s+1, 0); for(int j=0; j<=s; ++j){ for(int k=0; ; ++k){ int a = j + d * (n - 1 - i) + (n - i) * k; if(a > s) break; nextDp[a] += dp[j]; nextDp[a] %= MOD; } } dp.swap(nextDp); } cout << dp[s] << endl; return 0; }