SRM430 Div2 275

問題

各授業を履修する人数の配列が与えられる.しかし,各授業はminSize以上maxSize以下でなければならなかった.それを満たすように履修者を別な授業へと割り振り直す時,最低何人を動かさなければならないか.もし,このルールが満たせないならば-1を返す.

考え方

ルールを満たせない場合というのは,すべての人数が(minSize*授業数)未満か(maxSize*授業数)より多い場合はどんな割り振り方をしても満たせないので-1.
それ以外は,少なくとも,minSizeより少ない授業には(minSize-履修者)だけ人を動かさないといけなくて,maxSizeより多い授業には(履修者-maxSize)の人を動かさないといけない.
したがって,これのどちらか大きい方の人数が答えになる.