#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using namespace atcoder; //#define __int64 long long //#define long __int64 #define REP(i,a,b) for(int i=a;i> n >> s >> k; dpBall = s - (n * (n+1) / 2 - n) * k; dpBox = n; // cout << "dpBall:" << dpBall << endl; /* rep(i, dpBall+1){ dp[i][0] = 1; } rep(i, dpBox+1){ dp[0][i] = 1; } */ dp[0][0] = 1; //print2D(dp); for(int balli=0; balli<=dpBall; balli++){ for(int boxi=1; boxi<=dpBox; boxi++){ // dp[balli][boxi] = dp[balli][boxi-1] + dp[max(0, balli-boxi)][boxi]; // dp[balli][boxi] %= Modd; if(balli-boxi >= 0){ dp[balli][boxi] = dp[balli][boxi-1] + dp[max(0, balli-boxi)][boxi]; dp[balli][boxi] %= Modd; }else{ dp[balli][boxi] = dp[balli][boxi-1]; } } } //print2D(dp); if(dpBall < 0){ cout << 0 << endl; }else{ cout << dp[dpBall][dpBox] << endl; } return 0; }