結果
問題 |
No.1701 half price
|
ユーザー |
![]() |
提出日時 | 2021-10-08 23:46:33 |
言語 | Java (openjdk 23) |
結果 |
MLE
|
実行時間 | - |
コード長 | 929 bytes |
コンパイル時間 | 2,190 ms |
コンパイル使用メモリ | 77,224 KB |
実行使用メモリ | 691,760 KB |
最終ジャッジ日時 | 2024-07-23 08:14:22 |
合計ジャッジ時間 | 6,637 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 7 WA * 10 RE * 2 MLE * 1 |
ソースコード
import java.util.*; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int w = sc.nextInt(); int[] a = new int[n]; for (int i = 0; i < n; i++) { a[i] = sc.nextInt(); } int[][] dp = new int[n + 1][w + 1]; int[][] dp2 = new int[n + 1][w + 1]; dp[0][0] = 1; for (int i = 0; i < n; i++) { for (int j = 0; j <= w; j++) { dp[i + 1][j] += dp[i][j]; dp2[i + 1][j] += dp2[i][j]; if (j >= a[i]){ dp[i + 1][j] += dp[i][j - a[i]]; dp2[i + 1][j] += dp2[i][j - a[i]]; } if (j >= a[i] / 2){ dp2[i + 1][j] += dp[i][j - a[i] / 2]; } } } System.out.println(dp[n][w]+dp2[n][w]); } }