Submission #3837

#TimeUsernameProblemLanguageResultExecution timeMemory
3837wurikijiInherited disease (kriii1_I)C++98
1 / 1
0 ms1672 KiB
#include <cstdio> #include <cstring> #include <cstdlib> #include <string> #include <vector> #include <sstream> #include <iostream> #include <algorithm> using namespace std; const long long divv = 1000000007; long long child[101]; long long sum[101]; long long dap; vector<int> ls; long long gprev(int level) { if( level < 2 ) return 1; if( level == 2 ) return ls[0]; long long ret= ((gprev(level-1) - 1) * level) % divv ; ret = (ret + ls[level - 2]) %divv; return ret; } int main(void){ int d; int k; child[0] = 0; sum[0] = 0; child[1] = 1; sum[1] = 1; for(int i = 2;i < 101;i++) { child[i] = (child[i-1] * i) % divv ; sum[i] = (sum[i-1] + child[i]) %divv; } ls.clear(); scanf("%d",&d); scanf("%d", &k); printf("1\n"); for(int i = 2 ;i <= d;i++) { scanf("%d", &k); dap = sum[i-1]; ls.push_back(k); dap = ( dap + gprev(i)) %divv; printf("%lld\n",dap); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...