#include <cstdio>
#define m 1000000007
int d;
long long a[101],s[101],t=1,re[101],sum;
int main(void){
//freopen("input.txt","r",stdin);
scanf("%d",&d);
for(int i=0; i<d; i++)
scanf("%lld",&a[i]);
for(int i=0; i<d; i++){
if(i)
t*=(i+1);
t%=m;
s[i]+=s[i-1]+t;
s[i]%=m;
re[i]=s[i-1]+a[i];
re[i]%=m;
if(i>1){
sum=((re[i-1]+ (m-(s[i-2]+1)%m))%m)*((i+1)%m);
if(sum<0)
sum+=m;
re[i]+=sum;
}
re[i]%=m;
printf("%lld\n",re[i]);
}
return 0;
}
# |
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 |