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; }