| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 3732 | zzapcoder | Inherited disease (kriii1_I) | C++98 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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;
}
