Пожалуйста, прочтите новое правило об ограничении использования AI-инструментов. ×

Need Help with AtCoder educational DP, Candies problem

Правка en1, от akhil14shukla, 2021-08-13 15:02:23

The code below is failing in one test case out of 16. Someone please explain the bug in my code? ~~~~~ long long n, k; cin >> n >> k; vector a(n + 1, 0); long long mx = 0; for (int i = 1; i <= n; i++) { cin >> a[i]; mx += a[i]; } if (mx < k) { cout << 0; return 0; } else if (k == mx) { cout << 1; return 0; } k = min(k, mx — k); vector<vector> dp(2, vector(k + 1, 0)); dp[0][0] = 1; for (int i = 1; i <= n; i++) { for (int j = 0; j <= k; j++) { dp[1][j] += dp[0][j]; dp[1][j] %= 1000000007; if (j + a[i] + 1 <= k) { dp[1][j + a[i] + 1] -= dp[0][j]; dp[1][j + a[i] + 1] %= 1000000007; } } dp[0][0] = dp[1][0];

for (int j = 1; j <= k; j++)
    {
        dp[1][j] += dp[1][j - 1];
        dp[1][j] = dp[1][j] % 1000000007;
        dp[0][j] = dp[1][j];
        dp[1][j - 1] = 0;
    }
    dp[1][k] = 0;
}
cout << dp[0][k];

~~~~~

Теги #dynamic programing, #atcoder

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
en2 Английский akhil14shukla 2021-08-13 15:02:43 2 Tiny change: 'my code?\n~~~~~\n ' -> 'my code?\n\n~~~~~\n '
en1 Английский akhil14shukla 2021-08-13 15:02:23 1259 Initial revision (published)