동빈이의 큰 수의 법칙은 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙이다. 단 배열의 특정한 인덱스(번호)에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없는 것이 이 법칙의 특징이다.
5 8 3
2 4 5 4 6
46
n, m, k = map(int, input().split())
# N개의 자연수 입력받기
data = list(map(int, input().split()))
# 큰 수부터 내림차순 정렬하기
data.sort(reverse=True)
result = 0
count = 0
for i in range(m):
if count == k:
result += data[1]
count = 0
else:
result += data[0]
count += 1
print(result)
## N, M, K 입력받기
n, m, k = map(int, input().split())
# N개의 자연수 입력받기
data = list(map(int, input().split()))
# 큰 수부터 내림차순 정렬하기
data.sort(reverse=True)
a, b = data[0], data[1]
result = (k * a + b) * (int(m / (k + 1))) + (m % (k + 1)) * a
print(result)