#include <cstdio>
#define mod 1000000007
int main() {
int n;
scanf("%d",&n);
long long factorial[101] = {1};
long long rightNodeValue[101] = {0};
for(int i=1;i<=n;i++)
factorial[i] = factorial[i-1]*i%mod;
for(int i=1;i<=n;i++)
rightNodeValue[i] = (rightNodeValue[i-1] + factorial[i])%mod;
long long leftNum = 0;
for(int i=1;i<=n;i++) {
leftNum = (leftNum*i)%mod;
long long choice;
scanf("%lld",&choice);
printf("%lld\n",(rightNodeValue[i-1] + leftNum + choice)%mod);
leftNum = leftNum + choice - 1;
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
1088 KB |
Output is correct |
2 |
Correct |
0 ms |
1088 KB |
Output is correct |
3 |
Correct |
0 ms |
1088 KB |
Output is correct |
4 |
Correct |
0 ms |
1088 KB |
Output is correct |
5 |
Correct |
0 ms |
1088 KB |
Output is correct |
6 |
Correct |
0 ms |
1088 KB |
Output is correct |
7 |
Correct |
0 ms |
1088 KB |
Output is correct |
8 |
Correct |
0 ms |
1088 KB |
Output is correct |
9 |
Correct |
0 ms |
1088 KB |
Output is correct |
10 |
Correct |
0 ms |
1088 KB |
Output is correct |
11 |
Correct |
0 ms |
1088 KB |
Output is correct |
12 |
Correct |
0 ms |
1088 KB |
Output is correct |
13 |
Correct |
0 ms |
1088 KB |
Output is correct |
14 |
Correct |
0 ms |
1088 KB |
Output is correct |
15 |
Correct |
0 ms |
1088 KB |
Output is correct |
16 |
Correct |
0 ms |
1088 KB |
Output is correct |
17 |
Correct |
0 ms |
1088 KB |
Output is correct |
18 |
Correct |
0 ms |
1088 KB |
Output is correct |
19 |
Correct |
0 ms |
1088 KB |
Output is correct |
20 |
Correct |
0 ms |
1088 KB |
Output is correct |