#pragma warning(disable:4996)
#include <algorithm>
#include <functional>
#include <cstdio>
#include <iostream>
#include <vector>
using namespace std;
long long P;
int n;
vector<int> a;
long long MOD = 1000000007;
int main() {
int n;
cin >> n;
long long now = 0;
long long left_count = 0;
long long leftmost = 0;
long long rightmost = 0; // 이 세대의 rightmost 번호
long long count = 1; // 이 세대의 count, sum
for(int round = 1; round <= n; ++ round) {
int x; cin >> x;// x번째
now = rightmost + (left_count * round) + x;
now %= MOD;
left_count = left_count * round + (x - 1);
left_count %= MOD;
cout << now << endl;
leftmost = rightmost + 1;
leftmost %= MOD;
count = count * (round) % MOD;
rightmost += count;
rightmost %= MOD;
}
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
1672 KB |
Output is correct |
2 |
Correct |
0 ms |
1672 KB |
Output is correct |
3 |
Correct |
0 ms |
1672 KB |
Output is correct |
4 |
Correct |
0 ms |
1672 KB |
Output is correct |
5 |
Correct |
0 ms |
1672 KB |
Output is correct |
6 |
Correct |
0 ms |
1672 KB |
Output is correct |
7 |
Correct |
0 ms |
1672 KB |
Output is correct |
8 |
Correct |
0 ms |
1672 KB |
Output is correct |
9 |
Correct |
0 ms |
1672 KB |
Output is correct |
10 |
Correct |
0 ms |
1672 KB |
Output is correct |
11 |
Correct |
0 ms |
1672 KB |
Output is correct |
12 |
Correct |
0 ms |
1672 KB |
Output is correct |
13 |
Correct |
0 ms |
1672 KB |
Output is correct |
14 |
Correct |
0 ms |
1672 KB |
Output is correct |
15 |
Correct |
0 ms |
1672 KB |
Output is correct |
16 |
Correct |
0 ms |
1672 KB |
Output is correct |
17 |
Correct |
0 ms |
1672 KB |
Output is correct |
18 |
Correct |
0 ms |
1672 KB |
Output is correct |
19 |
Correct |
0 ms |
1672 KB |
Output is correct |
20 |
Correct |
0 ms |
1672 KB |
Output is correct |