#include<stdio.h> int dp[10001], n, k; int main() { scanf("%d %d", &n, &k); for (int i = 1; i <= k; i++) dp[i] = 0x3fffffff; for (int i = 0; i < n; i++) { int c; scanf("%d", &c); for (int j = c; j <= k; j++) if (dp[j] > dp[j - c] + 1) dp[j] = dp[j - c] + 1; } printf("%d", dp[k] == 0x3fffffff ? -1 : dp[k]); return 0; }
2294번: 동전 2
https://www.acmicpc.net/problem/2294
피드 구독하기:
댓글
(
Atom
)
댓글 없음 :
댓글 쓰기