atcoder ABC313 C - Approximate Equalization 2の勉強

atcoder.jp

・参考:
drken1215.hatenablog.com

・やったこと:参考記事の考え方でpythonで実装した。

n=int(input())
a=list(map(int,input().split()))

a.sort()
avg=sum(a)//n
rem=sum(a)%n  #あまり
#print(avg,rem)

b=[avg for _ in range(n)]  #aを変形した最終結果。

#bの後半からあまりが0になるまで1を加える。例えばあまりが3だとbの後ろから3つの要素に1を足す。
for i in reversed(range(n)):
  if rem==0:
    break
  b[i]+=1
  rem-=1 
#print(b)
ans=0
for i in range(n):
  ans+=abs(a[i]-b[i])
print(ans//2)