Submission #4304

#TimeUsernameProblemLanguageResultExecution timeMemory
4304zorrapowerInherited disease (kriii1_I)C++98
0 / 1
0 ms1088 KiB
#include<stdio.h> void get_N_generationArea(long long n,long long *start, long long *end); long long Factorial(long long n); long long getResult(long long n, long long *start, long long *end); long long Array[100]; long long n; int main(void){ long long start,end; get_N_generationArea(2, &start, &end); scanf("%d", &n); for(long long i=0; i<n; i++) scanf("%d", &Array[i]); for(long long i=1; i<=n; i++){ printf("%d\n", getResult(i, &start, &end)%1000000007); } return 0; } void get_N_generationArea(long long n,long long *start, long long *end){ *start=0; *end=0; for(long long i=1; i<=n; i++){ *end+=Factorial(i); *start=*end-Factorial(i)+1; } } long long Factorial(long long n){ long long result=1; for(long long i=1; i<=n; i++) result*=i; return result%1000000007; } long long getResult(long long generation, long long *start, long long *end){ long long area; get_N_generationArea(generation, start, end); area=*end-*start+1; for(long long i=0; i<generation; i++){ area/=i+1; *start+=area*(Array[i]-1); *end=*start+area-1; } return *start; }
#Verdict Execution timeMemoryGrader output
Fetching results...