#include<stdio.h>
int n;
long long int pl[101]={0};
long long int hp[101]={0};
int lst[101]={0};
int main(){
int i;
long long int ap=0;
scanf("%d",&n);
pl[1]=1;
hp[1]=1;
for(i=2;i<=n;i++){
pl[i]=pl[i-1]*i;
pl[i]=pl[i]%1000000007;
hp[i]=hp[i-1];
hp[i]+=pl[i];
hp[i]=hp[i]%1000000007;
// printf("%lld %lld\n",pl[i],hp[i]);
}
for(i=0;i<n;i++){
scanf("%d",&lst[i]);
}
printf("1\n");
for(i=1;i<n;i++){
ap=ap*(i+1);
ap+=lst[i]-1;
ap=ap%1000000007;
printf("%lld\n",(ap+1+hp[i])%1000000007);
}
}
# |
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 |