# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
3732 | zzapcoder | Inherited disease (kriii1_I) | C++98 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <stdio.h>
#include <vector>
int D;
std::vector<int> C;
std::vector<int> M;
std::vector<long long> NC;
int main()
{
scanf("%d", &D);
for ( int i = 0 ; i < D ; i++)
{
int tmp;
scanf("%d", &tmp);
C.push_back(tmp);
}
M.push_back(0);
NC.push_back(1);
for ( int i = 1 ; i <= D ; i++)
{
NC.push_back( i * NC[i-1]%1000000007) );
}
long long P = 0;
long long PP = 0;
long long PPP = 1;
printf("%d\n", 1);
PP = 1;
for ( int i = 1 ; i < D ; i++)
{
P = PP;
P += ((PPP-1)%1000000007)*((i+1)%1000000007));
P += C[i]%1000000007);
printf("%d\n", P%1000000007);
PP += NC[i+1]%1000000007;
PPP = C[i]%1000000007;
}
return 0;
}