Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. long long dp[105][100005];
  6. long long MOD = 1000000007;
  7.  
  8. int main(){
  9. int N, K;
  10. cin >> N >> K;
  11. if(!K){
  12. cout << 1 << endl;
  13. return 0;
  14. }
  15. for(int i = 0; i<=K; i++){
  16. dp[0][i] = 1;
  17. }
  18. for(int i= 1; i<=N; i++){
  19. int n;
  20. cin >> n;
  21. dp[i][0] = 1;
  22. for(int j =1; j<=K; j++){
  23. if(n >= j){
  24. dp[i][j] = dp[i-1][j];
  25. }
  26. else{
  27. dp[i][j] = (dp[i-1][j] - dp[i-1][j-n-1] + MOD)%MOD;
  28. }
  29. dp[i][j] = (dp[i][j] + dp[i][j-1])%MOD;
  30. }
  31. }
  32. cout << (dp[N][K]-dp[N][K-1] + MOD)%MOD;
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement