Submission #3548

#TimeUsernameProblemLanguageResultExecution timeMemory
3548blmarketInherited disease (kriii1_I)C++98
1 / 1
0 ms1672 KiB
#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <sstream> #include <numeric> #include <iterator> #include <queue> #include <set> #include <map> #include <vector> #define mp make_pair #define pb push_back #define sqr(x) ((x)*(x)) #define foreach(it,c) for(typeof((c).begin()) it = (c).begin(); it != (c).end(); ++it) using namespace std; typedef vector<int> VI; typedef vector<VI> VVI; typedef vector<string> VS; typedef pair<int,int> PII; template<typename T> int size(const T &a) { return a.size(); } int D; int dd[105]; const long long mod = 1000000007LL; int main(void) { scanf("%d", &D); for(int i=0;i<D;i++) { scanf("%d", &dd[i]); } if(D == 1) { cout << 1 << endl; return 0; } long long this_gen = 1; long long left = 1; long long noobs = 0; for(int i=1;i<=D;i++) { // cout << "GENERATION " << i << " LEFT = " << left << endl; this_gen *= i; this_gen %= mod; // cout << "THIS_GEN = " << this_gen << endl; cout << (left + noobs) % mod << endl; if(i == D) { //cout << left << " " << noobs << endl; return 0; } left += this_gen; if(left >= mod) left -= mod; noobs *= (i + 1); // cout << "PN=" << noobs << endl; noobs += (dd[i] - 1); noobs %= mod; // cout << "N=" << noobs << endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...