Submission #1318768

#TimeUsernameProblemLanguageResultExecution timeMemory
1318768exoworldgdhi (KRIII5_HI)C++20
7 / 7
244 ms117752 KiB
#pragma gcc optimize("o5,unroll-loops,inline,fast-math,omit-frame-pointer,tree-vectorize") #pragma gcc target("avx2,bmi,bmi2,popcnt,lzcnt,tune=native,fma,abm,mmx,sse") #include<bits/stdc++.h> #define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0) #define int long long using namespace std; const int mod=1e9+7; int a[55],b[105],c[105],bb[105],cc[105],d[105][105],dd[105][105],e[5005][5005],r[5005],rr[5005],i,j,k,n; signed main(void){ exoworldgd; for(i=1;i<=100;i++){ for(j=1;j<i;j++)b[i]=(b[i]+b[j]*c[i-j])%mod,bb[i]=(bb[i]+b[j]*cc[i-j]+bb[j]*c[i-j])%mod; c[i]=(i-b[i]+mod)%mod,cc[i]=(i*i-bb[i]+mod)%mod,b[i]=(b[i]+c[i])%mod,bb[i]=(bb[i]+cc[i])%mod; } d[0][0]=1; for(i=1;i<=100;i++)for(j=1;j<=100;j++)for(k=1;k<=j;k++)d[i][j]=(d[i][j]+c[k]*d[i-1][j-k])%mod,dd[i][j]=(dd[i][j]+(i==1?(k==j?cc[k]:0):c[k]*dd[i-1][j-k]))%mod; for(i=0;i<=5000;i++){ e[i][0]=1; for(j=1;j<=i;j++)e[i][j]=(e[i-1][j-1]+e[i-1][j])%mod; } r[0]=1,cin>>n; for(i=0;i<n;i++){ cin>>a[i]; for(j=5000;j+1;j--){ r[j]=rr[j]=0; for(k=1;k<=j&&k<=a[i];k++)r[j]=(r[j]+r[j-k]*e[j][k]%mod*d[k][a[i]])%mod,rr[j]=(rr[j]+rr[j-k]*d[k][a[i]]%mod*e[j-1][k]+r[j-k]*dd[k][a[i]]%mod*e[j-1][k-1])%mod; } } k=0; for(i=0;i<=5000;i++)k=(k+rr[i])%mod; cout<<k; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...