#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #define _USE_MATH_DEFINES #include #include using namespace std; //#include //using namespace atcoder; #define REP(i,n) for(int i = 0; i < (int)n; i++) #define RREP(i,n) for(int i = (int)n-1; i >= 0; i--) #define LREP(i,n) for(LL i = 0; i < (LL)n; i++) #define Vi vector #define Vl vector #define LP pair #define P pair #define T3 tuple #define T4 tuple #define INF 1000000007 #define SIZE 200010 #define MOD 1000000007 typedef long long LL; int N, S, K; LL dp[110][20010]; int main() { cin >> N >> S >> K; dp[0][0] = 1; for (int i = 1; i < N; i++) { for (int s = 0; s <= S; s++) { dp[i][s] = dp[i - 1][s]; if (s - i >= 0) dp[i][s] += dp[i][s - i]; dp[i][s] %= MOD; } } LL ans = 0; for (int a = 0; a <= S; a++) { int s = S - N * a - N * (N - 1) * K / 2; if (s >= 0) ans = (ans + dp[N - 1][s]) % MOD; } cout << ans << endl; }