考え方
dp[i][j]=
$i$コ目まで決めて,$j$コ選んだ場合の最大値.回答例
N, M = map(int, input().split()) A = list(map(int, input().split())) dp = [[-1<<60] * (M + 1) for _ in range(N + 1)] dp[0][0] = 0 for i in range(N): for j in range(M): dp[i + 1][j] = max(dp[i + 1][j], dp[i][j]) dp[i + 1][j + 1] = max(dp[i + 1][j + 1], dp[i][j + 1]) dp[i + 1][j + 1] = max(dp[i + 1][j + 1], dp[i][j] + (j + 1) * A[i]) print(dp[-1][-1])