해피 밀푀유
시간 제한1초메모리 제한1024 MB
N개 층 토핑에 0 이상 M 이하의 정수 당도를 부여하되 아래층이 위층보다 항상 높고 전체 합이 T가 되도록 하면서 전체 불쾌함 P의 최솟값을 구한다.
문제
보경이는 원래 개발자를 꿈꿨지만, 취업에 실패한 뒤 밀푀유 가게를 차렸다.
밀푀유는 총 개의 층으로 구성되어 있으며, 맨 아랫부분이 층이고 맨 윗부분이 층인 구조이다. 각 층 에는 개의 토핑이 존재한다.
가게를 연 뒤, 보경이는 손님에게 더 나은 만족도를 주기 위해 밀푀유의 구성을 고민했다. 그러던 중 손님들이 밀푀유를 위에서부터 아래로 한 층씩 차례대로 먹는다는 사실을 알게 되었다.
이를 본 보경이는 아래층에 존재하는 임의의 토핑이 위층에 존재하는 임의의 토핑보다 더 높은 당도를 가지도록 밀푀유를 만들기로 했다.
이를 위해, 맨 위층을 제외한 밀푀유의 층 에 대해 다음 조건을 만족해야 한다.
- 층 에 속한 모든 토핑의 당도 최솟값은 층 에 속한 모든 토핑의 당도 최댓값보다 커야 한다.
각 토핑의 당도는 이상 이하의 정수이며, 전체 토핑의 당도 합은 정확히 가 되어야 한다.
또한, 보경이는 당도 차이가 갑자기 커지면 너무 달아서 손님이 불쾌함을 느낄 수 있다는 점도 고려했다.
손님은 번째 층에 있는 당도 의 번째 토핑을 먹을 때, 이전에 먹었던 층에 있는 당도 의 임의의 토핑과 비교하여 인 경우마다 만큼의 불쾌함을 느낀다.
이 토핑에 대한 불쾌감 지수를 모두 합한 것을 라 하고, 손님이 느끼는 전체 불쾌함의 총합 는 모든 의 합이다.
보경이는 최대한 손님에게 불쾌함을 적게 주는 밀푀유를 개발하려고 한다. 손님이 이 밀푀유를 먹었을 때 느끼는 전체 불쾌함의 총합 의 최솟값을 구해보자!
입력
첫째 줄에 밀푀유의 최대 층수 과 토핑의 최대 당도 이 공백으로 구분되어 주어진다.
둘째 줄부터 개의 줄에 걸쳐, 각층에 존재하는 토핑 수 가 주어진다.
마지막 줄에 목표하는 전체 토핑의 당도 합인 가 주어진다.
입력되는 모든 수는 정수이다.
출력
전체 토핑의 당도 합이 가 되는 밀푀유를 만들 수 없다면 첫째 줄에 Sad를 출력한다.
만들 수 있다면, 첫째 줄에 Happy를 출력한 뒤, 바로 다음 줄에 전체 불쾌함의 총합을 나타내는 정수 의 최솟값을 출력한다.