#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define _overload3(_1,_2,_3,name,...) name #define _rep(i,n) repi(i,0,n) #define repi(i,a,n) for (int i=a;i=a;i--) #define range(...) _overload3(__VA_ARGS__,repi,_rep,)(__VA_ARGS__) #define _GLIBCXX_DEBUG typedef long long ll; typedef double db; typedef string str; // head int main(){ int n,s,k; cin >> n >> s >> k; ll dp[101][20000]; int maxs = s-k*(k-1)/2*n; range(i,1,n+1){ range(j,maxs+1){ if (j-i>=0){ dp[i][j]=dp[i-1][j]; } else{ dp[i][j]=dp[i-1][j]+dp[i][j-i]; } } } cout << dp[n][maxs]; }