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

hamayanhamayan's blog

Card Game for Two [AtCoder Beginner Contest 088 B]

https://abc088.contest.atcoder.jp/tasks/abc088_b

解法

https://abc088.contest.atcoder.jp/submissions/2108165

貪欲に考えてみる。
合計を最大にしたいので、大きい方から取っていくほうが最適。
その為、大きい方から順番に各々取っていくシミュレーションをしていく。
sortでgreater()を比較関数として渡すと降順ソートができる。
あとは、パリティで分けて総和を取ったら、その差が答え。

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