제출 #20091

#제출 시각아이디문제언어결과실행 시간메모리
20091jihoon괄호 (kriii4_R)C++98
100 / 100
702 ms24520 KiB
#include<cstdio> #define je 1000000007 long long fact[2000001]; long long seq[1000001]; long long gop(long long x,long long y){ x%=je;y%=je; x*=y;x%=je; return x; } long long hap(long long x,long long y){ x%=je;y%=je; x+=y;x%=je; return x; } long long div(long long x,long long y){ x%=je;y%=je; int left=je-2; long long gopp=y,ret=1; while(left){ if(left&1){ ret=gop(ret,gopp); } gopp=gop(gopp,gopp); left >>= 1; } ret=gop(ret,x); return ret; } int main(){ int n,k; long long su; scanf("%d %d",&n,&k); seq[0]=1; fact[0]=1; su=div(1,k); for(int i=1;i<=n;i++){ fact[i]=gop(fact[i-1],i); } for(int i=1;i<=n;i++){ seq[i]=gop(seq[i-1],k+1); if(i%2){ su=gop(su,k); seq[i]=hap(seq[i],je-gop(su,div(div(div(fact[i-1],fact[i/2]),fact[i/2]),(i/2)+1))); } } printf("%lld\n",seq[n]); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...