백준 17392 우울한 방학
https://www.acmicpc.net/problem/17392
숭고한 공식 풀이는 여기서 보실 수 있습니다.
그리디 문제입니다. 첫번째로 알아야 하는 사실은 기분이 음수가 아닌 날에 만남을 가질 필요가 없다는 점입니다.
따라서 하나의 약속이 $H_i+1$ 일 동안을 책임질 수 있습니다.
이제 문제는 $m-SUM(H_i+1)$ 을 n-1일동안 분배하는 문제로 바뀌게 됩니다.
$m-SUM(H_i+1)<0$ 이라면 당연히 0을 출력하면 됩니다.
우울함은 기분의 제곱이므로 큰 수가 많을수록 불리합니다. 즉, 바구니에 공을 담을 때, 공이 쏠리는 바구니가 있다면 큰 수가 많아지므로 불리합니다.
이제, 이 문제는 바구니에 공을 최대한 균등하게 담는 문제로 변했습니다.
바구니에 공을 최대한 균등하게 담는다면 $ m/(n+1)+1 $ 개를 담는 바구니가 일부 생기고 나머지는 $ m/(n+1) $ 개를 담습니다.
제곱의 합은 공식을 이용하여 구할 수 있습니다.
n,m=map(int,input().split())
l=map(int,input().split())
for x in l:
m=m-x-1
if m<=0:
print(0)
else:
k=m//(n+1)
print((k+1)*(k+1)*(m%(n+1))+(n+1)*(k*(k+1)*(2*k+1))//6)