Skip to content

Commit 9882015

Browse files
YoonYn9915Mingguriguri
authored andcommitted
[BOJ] 데스노트 / 실버 2 / 50분
https://www.acmicpc.net/problem/2281
1 parent bf29bb5 commit 9882015

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
n, m = map(int, input().split())
5+
6+
names = [int(input()) for _ in range(n)]
7+
dp = [[-1]*(m+1) for _ in range(n)]
8+
dp[0][names[0]] = 0
9+
10+
for r in range(n-1):
11+
for c in range(1, m+1):
12+
if dp[r][c] != -1:
13+
if c+1+names[r+1] <= m:
14+
dp[r+1][c+names[r+1]+1] = dp[r][c]
15+
if dp[r+1][names[r+1]] != -1:
16+
dp[r+1][names[r+1]] = min(dp[r+1][names[r+1]], dp[r][c] + (m-c)**2)
17+
else:
18+
dp[r+1][names[r+1]] = dp[r][c] + (m-c)**2
19+
20+
answer = 1000000000
21+
for i in range(1, m+1):
22+
if dp[n-1][i] != -1:
23+
answer = min(answer, dp[n-1][i])
24+
print(answer)

0 commit comments

Comments
 (0)