Official
B - チーム編成 / Team Formation Editorial
by
B - チーム編成 / Team Formation Editorial
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)
posted:
last update:
