#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // std::back_inserter const double PI = acos(-1); using namespace std; using ll =long long; #define rep(i,n)for(ll i=0;i<(n);i++) const int mod = 1000000007; const ll inf = 1e18+1; int ctoi(char c) { if (c >= '0' && c <= '9') { return c - '0'; } return 0; } ll gcd(ll a, ll b) { if (a % b == 0) { return b; } else { return gcd(b, a % b); } } ll lcm(ll a, ll b) { return a * b / gcd(a, b); }; //fixed << setprecision(2) template inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; } template inline bool chmax(T& a, T b) { if (a < b) { a = b; return true; } return false; } //小文字=大文字+32 int main() { ll N,S,K; cin >> N>>S>>K; S -= K*(N - 1) * N / 2; if (S < 0) { cout << 0; return 0; } vector>dp(N+1,vector(S+1,0)); dp[0][0] = 1; for(ll i=1;i= 0) { dp[i][j] = (dp[i - 1][j] + dp[i][j - i]) % mod; } else { dp[i][j] = dp[i - 1][j]; } } } cout << dp[N][S]; }