프로그램 명: koi_bead(special_judge)
제한시간: 1 초

N개의 숫자 구슬이 <그림 1>과 같이 막대에 꿰어져 일자로 놓여 있다. 이들 구슬은 막대에서 빼낼 수 없고 따라서 그 순서를 바꿀 수 없다.

이 숫자 구슬을 M개의 그룹으로 나누었을 때 각각의 그룹의 합 중 최대값이 최소가 되도록 하려 한다. 예를 들어 세 그룹으로 나눈다고 할 때 < 그림 2 > 와 같이 그룹을 나누면 그룹의 합은 각각 11, 15, 18이 되어 그 중 최대값은 18이 되고, < 그림 3 > 과 같이 그룹을 나누면 각 그룹의 합은 각각 17, 12, 15가 되어 그 중 최대값은 17이 된다. 숫자 구슬의 배열이 위와 같을 때는 그룹의 합 중 최대값이 17보다 작게 만들 수는 없다.

각 그룹의 합 중 최대값이 최소가 되도록 M개의 그룹으로 나누었을 때, 그 최대값과 각 그룹을 구성하는 구슬의 개수를 찾아 출력하는 프로그램을 작성하시오.

실행시간은 1초를 초과할 수 없다.

입력 형식

출력 형식

구슬의 개수를 출력할 때는 사이에 한 칸의 공백을 둔다. 만약 그룹의 합의 최대값이 최소가 되도록 하는 경우가 둘 이상이라면 그 중 하나만을 출력한다.

입력과 출력의 예

입력

8 3
5 4 2 6 9 3 8 7

출력

17
4 2 2
출처: koi 기출

[질/답] [제출 현황] [푼 후(0)]
[ 채 점 ] [홈으로]  [뒤 로]