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

hamayanhamayan's blog

和の和 [yukicoder 1081]

https://yukicoder.me/problems/no/1081

解説

https://yukicoder.me/submissions/499832

シミュレーションをしていこう。
具体的には、A[i] += A[i + 1]を全部の要素に行うことをN - 1回やればいい。
すると、A[0]が答えになる。
もっと賢くやることもできそうだが、愚直でできるときは愚直にやってしまおう。

問題がmod 109+7で計算する部分であるが、自分はmintというmod計算ライブラリを使っている。
long longで計算して、毎回109+7の余りを取っても問題ない。
問題ないが、将来的にはmintのような余りを扱うライブラリを持っておくと、便利な時が多いと思う。

int N;
mint A[101];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    rep(i, 0, N) {
        int a; cin >> a;
        A[i] = a;
    }

    rep(i, 0, N - 1) rep(j, 0, N - i - 1) A[j] += A[j + 1];
    cout << A[0] << endl;
}