はまやんはまやんはまやん

hamayanhamayan's blog

Christmas Eve Eve [AtCoder Beginner Contest 115 B]

https://beta.atcoder.jp/contests/abc115/tasks/abc115_b

解説

https://beta.atcoder.jp/contests/abc115/submissions/3744361

最も高い商品以外はそのまま足して、最も高い商品は半額にして足すというのを実装する。
最も高い商品を特定するために、配列Pをソートしよう。
c++ではソート関数があるので、これを使う。
配列ならsort(P, P + N)
Pをvectorで作っているなら、sort(P.begin(), P.end())
でソートできる。
標準は昇順ソートなので、末尾以外をそのまま足して、末尾を/2して足すと答え。

int N, P[10];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    rep(i, 0, N) cin >> P[i];
    sort(P, P + N);
 
    int ans = 0;
    rep(i, 0, N - 1) ans += P[i];
    ans += P[N - 1] / 2;
    cout << ans << endl;
}