M번 저녁 청소를 배치해 청소 후 누적된 오염도와 일일 방문자 수 곱의 합을 최소화합니다.
보통5동적 계획법누적 합면접 대비아직 제출이 없습니다시간 제한1초메모리 제한128 MB남규는 동아리방 관리자다. 동아리방을 쓰는 사람이 늘면서 방이 더러워졌고, 오는 사람마다 불쾌함을 느낀다.
한 사람이 느끼는 불쾌함은 그 사람이 방에 들어온 날 아침의 더러움과 같다. 더러움이 3인 날에 5명이 오면 다섯 명 모두 불쾌함 3을 느끼므로 그날 불쾌함의 합은 15다. 그리고 그날 드나든 사람 수만큼 더러움이 늘어난다. 정리하면 어떤 날 아침의 더러움이 d이고 그날 드나드는 사람이 p명이면, 그날 사람들이 느낀 불쾌함의 합은 d×p이고 모두 나간 뒤의 더러움은 d+p가 된다.
남규는 게을러서 N일 중 정확히 M일만 청소한다. 청소는 항상 그날 사람이 모두 나간 뒤 저녁에 하고, 청소한 날 저녁의 더러움은 0이 된다. 첫날 아침의 더러움은 0이다.
N일 동안 매일 몇 명이 드나드는지 미리 알고 있다. 불쾌함의 총합이 가장 작아지는 청소 계획을 구하라.
첫째 줄에 N과 M이 주어진다. (1≤N≤100, 1≤M≤min(10,N))
둘째 줄에 각 날에 드나드는 사람 수 P1,P2,…,PN이 공백으로 구분되어 주어진다. (1≤Pi≤20)
첫째 줄에 N일 동안 사람들이 느낀 불쾌함 총합의 최솟값을 출력한다.
둘째 줄에 그 최솟값을 만드는 청소 날짜 M개를 오름차순으로 공백 하나로 구분해 출력한다. 최솟값을 만드는 계획이 여러 가지면, 날짜를 오름차순으로 늘어놓은 수열이 사전순으로 가장 앞서는 것을 출력한다.
8일 동안 드나드는 사람 수가 차례로 5,8,6,10,1,15,3,9이고 3일과 6일 저녁에 청소하면 날짜별 값은 다음과 같다.
| 날짜 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| 아침 더러움 | 0 | 5 | 13 | 0 | 10 | 11 | 0 | 3 |
| 그날 불쾌함 | 0 | 40 | 78 | 0 | 10 | 165 | 0 | 27 |
| 누적 불쾌함 | 0 | 40 | 118 | 118 | 128 | 293 | 293 | 320 |