よじろめ覚書

私の理解度重視のソースコードです。

ABC027B - 島と橋

問題:B - 島と橋

#include <cstdio>
#include <iostream>
#include <vector>
using namespace std;

#define REP(i, n) for (int i = 0; i < (n); ++i)
#define PB push_back

int main(void) {
    int n, a, sum = 0, cnt = 0, tmp;
    vector<int> vec;

    scanf ("%d", &n);
    REP(i, n) {
        scanf ("%d", &a);
        vec.PB(a);
        sum += a;
    }

    if (sum % n) {
        printf ("-1\n");
    } else {
        tmp = sum / n;
        REP(i, n - 1) {
            if (vec[i] - tmp != 0) {
                cnt++;
            }
            vec[i + 1] += vec[i] - tmp;
        }

        printf ("%d\n", cnt);
    }

    return 0;
}