Submission #164182

#TimeUsernameProblemLanguageResultExecution timeMemory
164182mhy908Tents (JOI18_tents)C++14
100 / 100
162 ms91132 KiB
#include <bits/stdc++.h> typedef long long LL; const LL mod=1000000007; int n, m; LL dp[5010][5010]; int main() { scanf("%d %d", &n, &m); for(int i=0; i<=5000; i++){ dp[i][0]=1; dp[0][i]=1; } for(int i=1; i<=n; i++){ for(int j=1; j<=m; j++){ dp[i][j]=(dp[i-1][j]+4*j*dp[i-1][j-1])%mod; if(i>=2)dp[i][j]=(dp[i][j]+(LL)(i-1)*j*dp[i-2][j-1])%mod; if(j>=2)dp[i][j]=(dp[i][j]+(LL)j*(j-1)/2*dp[i-1][j-2])%mod; } } printf("%lld", (dp[n][m]+mod-1)%mod); }

Compilation message (stderr)

tents.cpp: In function 'int main()':
tents.cpp:8:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d", &n, &m);
     ~~~~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...