Submission #3431

#TimeUsernameProblemLanguageResultExecution timeMemory
3431arineInherited disease (kriii1_I)C++98
1 / 1
0 ms1672 KiB
#include <iostream>
#include <vector>
#define DIVIDENT 1000000007
using namespace std;
typedef long long int lld;

lld starting[110];
int main() {

    starting[0]=0, starting[1]=1, starting[2]=2;
    lld org=2;
    for(int i=3; i<=100; ++i) {
        starting[i]=(starting[i-1]+org)%DIVIDENT;
        org=(org*i)%DIVIDENT;
    }   
            
//  for(int i=0; i<=100; ++i) cerr << starting[i] << ' ';

    int D;
    cin >> D;
    lld past=0;
    for(int i=1; i<=D; ++i) {
        lld Di; 
        cin >> Di; 

        cout << (starting[i]+(Di-1)+past)%DIVIDENT << endl;
        past=(past+Di-1)%DIVIDENT;
        past=(past*(i+1))%DIVIDENT;
//      cerr << '[' << past << ']' << endl;
    }   

    return 0;

}
#Verdict Execution timeMemoryGrader output
Fetching results...