N体のモンスターと戦うフェネックが、モンスターに勝つまで行う攻撃の回数の最小値を求める問題です。
フェネックはK回まで必殺技を使え、その回数は攻撃の回数に含まれません。
必殺技では、モンスターの体力を0にすることができます。
対して攻撃は、モンスターの体力を1減らします。
提出
n,k = map(int,input().split())
h = list(map(int,input().split()))
h_sort = sorted(h, reverse=True)
ans = sum(h_sort[k:])
print(ans)
最小値を求めるために、必殺技は体力が大きいモンスターに使います。
それぞれのモンスターの体力のリスト(配列)を降順(reverse=True)にソートして、攻撃で倒すモンスターの体力合計値を出します。
配列のK番目より下のモンスターは必殺技で倒すので、K以降の合計値です。
このほか、K以降をfor文を回して足していく、とかでもできますね。
まとめて書くとこんな感じです。
提出
n, k = map(int, input().split())
h = sum(sorted(list(map(int, input().split())), reverse=True)[k:])
print(h)