← Back to List

17392번: 우울한 방학 ↗

Solutions

Python 3
1.0 KB | 1038 chars
import sys
from math import sqrt, pi, sin, factorial, ceil, floor
from datetime import datetime, timedelta

SYS_INPUT = True
RECURSION_LIMIT = 10 ** 7
SET_RECURSION = False
BLANK = " "

if SET_RECURSION:
    sys.setrecursionlimit(RECURSION_LIMIT)

inp = lambda : sys.stdin.readline().rstrip() if SYS_INPUT else input()
mii = lambda x = BLANK : [*map(int,inp().split(x))]
mfi = lambda x = BLANK : [*map(float,inp().split(x))]
ii = lambda : int(inp())
fi = lambda : float(inp())
isplit = lambda : inp().split()
p = print

def gcd(a, b): return gcd(b, a % b) if b > 0 else a
def lcm(a, b): return a * b // gcd(a, b)


def solve():
	n, k = mii()

	if n > 0:
		l = mii()
	else:
		l = []
	
	maximum_range = sum(l) + n

	left = k - maximum_range
	range_cnt = n + 1
	
	if left <= 0:
		p(0)
		return

	sm = left // range_cnt
	mod = left % range_cnt

	ans = 0

	for i in range(1, sm + 1):
		ans += i * i * range_cnt
	
	ans += ((sm + 1) ** 2) * mod

	p(ans) 


if __name__ == "__main__":
    tc = 1
    for t in range(1, tc+1):
        ret = solve()