結果

問題 No.527 ナップサック容量問題
ユーザー tentententen
提出日時 2020-12-01 20:03:23
言語 Java21
(openjdk 21)
結果
AC  
実行時間 377 ms / 2,000 ms
コード長 1,424 bytes
コンパイル時間 2,416 ms
コンパイル使用メモリ 77,232 KB
実行使用メモリ 109,456 KB
最終ジャッジ日時 2024-09-13 03:06:06
合計ジャッジ時間 14,010 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 164 ms
55,872 KB
testcase_01 AC 164 ms
56,392 KB
testcase_02 AC 164 ms
54,356 KB
testcase_03 AC 166 ms
56,120 KB
testcase_04 AC 146 ms
54,120 KB
testcase_05 AC 244 ms
68,636 KB
testcase_06 AC 334 ms
86,424 KB
testcase_07 AC 315 ms
83,316 KB
testcase_08 AC 231 ms
65,124 KB
testcase_09 AC 146 ms
53,992 KB
testcase_10 AC 351 ms
86,688 KB
testcase_11 AC 288 ms
75,580 KB
testcase_12 AC 254 ms
75,592 KB
testcase_13 AC 351 ms
86,384 KB
testcase_14 AC 219 ms
65,304 KB
testcase_15 AC 276 ms
75,700 KB
testcase_16 AC 161 ms
56,096 KB
testcase_17 AC 247 ms
68,900 KB
testcase_18 AC 260 ms
75,884 KB
testcase_19 AC 163 ms
55,840 KB
testcase_20 AC 221 ms
65,256 KB
testcase_21 AC 377 ms
107,860 KB
testcase_22 AC 317 ms
82,808 KB
testcase_23 AC 359 ms
90,152 KB
testcase_24 AC 194 ms
63,388 KB
testcase_25 AC 303 ms
82,748 KB
testcase_26 AC 275 ms
75,460 KB
testcase_27 AC 282 ms
75,592 KB
testcase_28 AC 277 ms
75,728 KB
testcase_29 AC 366 ms
109,456 KB
testcase_30 AC 177 ms
58,800 KB
testcase_31 AC 240 ms
68,628 KB
testcase_32 AC 255 ms
75,780 KB
testcase_33 AC 249 ms
75,608 KB
testcase_34 AC 263 ms
76,248 KB
testcase_35 AC 277 ms
75,596 KB
testcase_36 AC 164 ms
56,120 KB
testcase_37 AC 247 ms
68,496 KB
testcase_38 AC 262 ms
75,984 KB
testcase_39 AC 256 ms
75,500 KB
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

import java.util.*;
public class Main {
static int[] values;
static int[] weights;
static int[][] dp;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
values = new int[n];
weights = new int[n];
for (int i = 0; i < n; i++) {
values[i] = sc.nextInt();
weights[i] = sc.nextInt();
}
dp = new int[n][100001];
for (int[] arr : dp) {
Arrays.fill(arr, -1);
}
int v = sc.nextInt();
int min = 0;
int max = 0;
for (int i = 1; i <= 100000; i++) {
int x = dfw(n - 1, i);
if (x == v) {
if (min == 0) {
min = i;
}
max = i;
if (i == 100000) {
System.out.println(min);
System.out.println("inf");
return;
}
}
}
System.out.println(min);
System.out.println(max);
}
static int dfw(int idx, int w) {
if (w < 0) {
return Integer.MIN_VALUE;
}
if (idx < 0) {
return 0;
}
if (dp[idx][w] < 0) {
dp[idx][w] = Math.max(dfw(idx - 1, w), dfw(idx - 1, w - weights[idx]) + values[idx]);
}
return dp[idx][w];
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0