#include"bits/stdc++.h" using namespace std; #define rep(i,n) for(int i=0;i<(int)(n);i++) const int INF10=1000000001,ID_MAX=20; const long mod=(1e9)+7; const long long INF18=100000000000000001; struct edge{ int to; long cost; }; void sort2array(double *a,long *b,long n){ for(int i=0;ibool {return a[i]0)return (a/b)+1; else return a/b; } int bi_e[ID_MAX]={0}; //2進数表示したときの最高桁 int bi_max(long n){ int m=0; for(m;(1<0;n=(n>>1),i++)bi_e[i]=n&1; } } //x^n mod m (nが負の時は0) long myPow(long x, long n, long m){ if(n<0)return 0; if(n == 0) return 1; if(n % 2 == 0) return myPow(x * x % m, n / 2, m); else return x * myPow(x, n - 1, m) % m; } int n,s,k; int main(){ int i; //入力 cin>>n>>s>>k; s=s-k*(n-1)*n/2; //処理 if(s<0){ cout<<0<j){ dp[i][j]=dp[i-1][j]; }else dp[i][j]=(dp[i][j-i]+dp[i-1][j])%mod; } } //出力 cout<