けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 349 A - Zero Sum Game (7Q, 灰色, 100 点)

数学の部分を乗り越えることが難しいかもしれない。

問題概要

 1, 2, \dots, N が、一対一の勝敗のつくゲームを何度か行った。 N 人の最初の持ち点は 0 点である。

各ゲームでは勝者の持ち点が 1 増え、敗者の持ち点が 1 減る。(持ち点が負になることもある)。

最終的に人  1, 2, \dots, N-1 の持ち点が  A_{1}, A_{2}, \dots, A_{N-1} であるとき、人  N の持ち点を求めよ。

制約

  •  2 \le N \le 100

考えたこと

サンプルを見ながら予想してもいいし、ちゃんと証明してもよい。注目したいことは、

どんなに勝負を繰り返しても、 N 人全員の持ち点の総和は 0 のまま変わらない

ということだ。よって、

 A_{1} + A_{2} + \dots + A_{N-1} + A_{N} = 0

であるから、

 A_{N} = -(A_{1} + A_{2} + \dots + A_{N-1}

と求められる。

コード

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

int main() {
    int N;
    cin >> N;
    long long res = 0;
    for (int i = 0;i< N - 1; ++i) {
        long long a;
        cin >> a;
        res += a;
    }
    cout << -res << endl;
}