Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- long long dp[105][100005];
- long long MOD = 1000000007;
- int main(){
- int N, K;
- cin >> N >> K;
- if(!K){
- cout << 1 << endl;
- return 0;
- }
- for(int i = 0; i<=K; i++){
- dp[0][i] = 1;
- }
- for(int i= 1; i<=N; i++){
- int n;
- cin >> n;
- dp[i][0] = 1;
- for(int j =1; j<=K; j++){
- if(n >= j){
- dp[i][j] = dp[i-1][j];
- }
- else{
- dp[i][j] = (dp[i-1][j] - dp[i-1][j-n-1] + MOD)%MOD;
- }
- dp[i][j] = (dp[i][j] + dp[i][j-1])%MOD;
- }
- }
- cout << (dp[N][K]-dp[N][K-1] + MOD)%MOD;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement