// 5/13 // 分割数 類題 // 見栄っ張りの募金活動 #include #define rep(i, n) for (int i = 0; i < (n); ++i) using namespace std; using ll = long long; using P = pair; using Graph = vector>; int dp[20010][110]; // dp[i][k] = 合計i円をj人で分けるパターン。 const int MOD = 1000000007; int main() { int N, S, K; cin >> N >> S >> K; S -= K * N * (N - 1) / 2; if (S < 0) { cout << "0" << endl; return 0; } dp[0][0] = 1; for (int i = 0; i <= S; i++) { for (int j = 1; j <= N; j++) { if (i >= j) { dp[i][j] = (dp[i - j][j] + dp[i][j - 1]) % MOD; } else { dp[i][j] = dp[i][j - 1]; } } } cout << dp[S][N] << endl; }