N, M = map(int,input().split()) not_visited_days = [True]*(N+1) if M: for k in list(map(int,input().split())): not_visited_days[k] = False INF = float('inf') dp = [[INF for _ in range(40)] for _ in range(105)] dp[0][0] = 0 for day in range(N): for coupon in range(37): if not not_visited_days[day+1]: dp[day+1][coupon] = min(dp[day+1][coupon],dp[day][coupon]) dp[day+1][coupon] = min(dp[day+1][coupon],dp[day][coupon] + 10000) dp[day+3][coupon+1] = min(dp[day+3][coupon+1],dp[day][coupon] + 25000) dp[day+5][coupon+2] = min(dp[day+5][coupon+2],dp[day][coupon] + 37000) for coupon in range(39,2,-1): dp[day+1][coupon-3] = min(dp[day+1][coupon-3],dp[day][coupon]) print(min(dp[N]))
'알고리즘 > 백준_복기_미완료' 카테고리의 다른 글
[BOJ/백준] 13458 시험감독 (0) | 2021.05.05 |
---|---|
[BOJ/백준] 13334 철로 (0) | 2021.05.05 |
[BOJ/백준] 13164 행복 유치원 (0) | 2021.05.05 |
[BOJ/백준] 2982 국왕의 방문 (0) | 2021.05.05 |
[BOJ/백준] 12978 스크루지 민호 2 (0) | 2021.05.04 |