公式

B - チーム編成 / Team Formation 解説 by harurun4635


問題文に従い

  • \(A_T\) を取り除き答えに加算
  • 残った \(A_i\) のうち、値の大きい \(K-1\) 個を答えに加算

を行えばよいです。

\(1\) つ目は pop (Python) や erase (C++) などで行うことができます。

\(2\) つ目は、降順に sort して先頭から \(K-1\) 項の和をとるのが簡単でしょう。

計算量は \(O(N \log N)\) です。


実装例

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

ans = a.pop(t - 1)
ans += sum(sorted(a, reverse=True)[:k-1])
print(ans)

投稿日時:
最終更新: