Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
#include
#include
using namespace std; int main() { // dp[x] --> the number of ways such that we have used x candies till this level int n, k; cin >> n >> k; vector
v(n); for(int i = 0; i < n; i++) { cin >> v[i]; } vector
dp(k + 1, 0); dp[0] = 1; int MOD = 1e9 + 7; for(int i = 0; i < n; i++) { vector
pref_sum(k + 1, 0); for(int j = k; j >= 0; j--) { int L = j + 1; int R = j + min(v[i], k - j); if(L <= R) { pref_sum[L] += dp[j]; pref_sum[L] %= MOD; if(R + 1 <= k) { pref_sum[R + 1] -= dp[j]; if(pref_sum[R + 1] < 0) { pref_sum[R + 1] += MOD; } } } } int sum = 0; for(int c = 0; c <= k; c++) { sum += pref_sum[c]; sum %= MOD; dp[c] += sum; dp[c] %= MOD; } } cout << dp[k] << endl; return 0; }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)