結果

問題 No.247 線形計画問題もどき
ユーザー suiginginsuigingin
提出日時 2015-07-19 22:50:34
言語 Java21
(openjdk 21)
結果
AC  
実行時間 238 ms / 2,000 ms
コード長 893 bytes
コンパイル時間 3,482 ms
コンパイル使用メモリ 77,472 KB
実行使用メモリ 95,744 KB
最終ジャッジ日時 2024-07-07 11:06:59
合計ジャッジ時間 8,997 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 177 ms
55,808 KB
testcase_01 AC 102 ms
41,248 KB
testcase_02 AC 229 ms
95,744 KB
testcase_03 AC 99 ms
41,384 KB
testcase_04 AC 104 ms
41,380 KB
testcase_05 AC 116 ms
41,324 KB
testcase_06 AC 115 ms
41,096 KB
testcase_07 AC 150 ms
43,332 KB
testcase_08 AC 140 ms
41,936 KB
testcase_09 AC 117 ms
41,040 KB
testcase_10 AC 147 ms
42,212 KB
testcase_11 AC 118 ms
41,312 KB
testcase_12 AC 111 ms
41,440 KB
testcase_13 AC 113 ms
41,052 KB
testcase_14 AC 102 ms
40,872 KB
testcase_15 AC 111 ms
41,040 KB
testcase_16 AC 114 ms
41,072 KB
testcase_17 AC 169 ms
51,828 KB
testcase_18 AC 133 ms
41,612 KB
testcase_19 AC 214 ms
73,836 KB
testcase_20 AC 219 ms
74,248 KB
testcase_21 AC 156 ms
47,744 KB
testcase_22 AC 176 ms
52,220 KB
testcase_23 AC 161 ms
48,032 KB
testcase_24 AC 238 ms
74,868 KB
testcase_25 AC 237 ms
65,288 KB
testcase_26 AC 147 ms
47,656 KB
testcase_27 AC 149 ms
52,196 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.util.Scanner;

public class No_247 {
	Scanner sc = new Scanner(System.in);

	void run() {
		int C = sc.nextInt();
		int N = sc.nextInt();
		int[] a = new int[N];
		for (int i = 0; i < N; i++) a[i] = sc.nextInt();
		int[][] dp = new int[N + 1][C + 1];

		for (int i = 0; i <= N; i++) {
			for (int j = 1; j <= C; j++) {
				dp[i][j] = Integer.MAX_VALUE / 2;
			}
		}

		for (int i = 0; i < N; i++) {
			for (int j = 0; j <= C; j++) {
				if (j - a[i] >= 0) {
					dp[i + 1][j] = Math.min(dp[i][j], dp[i][j - a[i]] + 1);
					dp[i + 1][j] = Math.min(dp[i + 1][j], dp[i + 1][j - a[i]] + 1);
				} else {
					dp[i + 1][j] = dp[i][j];
				}
			}
		}

		int res = Integer.MAX_VALUE / 2;
		for (int i = 0; i <= N; i++) res = Math.min(res, dp[i][C]);
		System.out.println((res == Integer.MAX_VALUE / 2) ? -1 : res);
	}

	public static void main(String[] args) {
		new No_247().run();
	}
}
0