公式

B - お土産の選別 / Souvenir Selection 解説 by kyopro_friends


満足度の高いから \(N-K\) 個を持ち帰ればよいです。
(そうでないなら、持ち帰るお土産の中に、諦めるお土産より満足度が低いものが存在するので、それらを交換する方が得です)

よって、ソートして和を取ることで解くことができます。計算量は \(O(N\log N)\) です。

実装例 (C++)

#include<bits/stdc++.h>
using namespace std;

int main(){
  int n, k;
  cin >> n >> k;
  vector<int>d(n);
  for(int i=0; i<n; i++) cin >> d[i];
  sort(d.begin(), d.end());

  long long ans=0;
  for(int i=k; i<n; i++){
    ans += d[i];
  }
  cout << ans << endl;
}

実装例 (Python)

N, K = map(int, input().split())
D = list(map(int, input().split()))
D.sort()
print(sum(D[K:]))

投稿日時:
最終更新: