Submission #1193901

#TimeUsernameProblemLanguageResultExecution timeMemory
1193901MuhammadSaram캥거루 (CEOI16_kangaroo)C++20
100 / 100
51 ms55112 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int M = 2000 + 2, mod = 1e9 + 7; int dp[M][M][3]; signed main() { int n,s,e; cin>>n>>s>>e; dp[1][1][(s==1 or e==1)]=1; for (int i=2;i<=n;i++) for (int j=1;j<=i;j++) { if (i==s or i==e) for (int k=1;k<=2;k++) dp[i][j][k]=(dp[i-1][j-1][k-1]+dp[i-1][j][k-1])%mod; else for (int k=0;k<=2;k++) dp[i][j][k]=(dp[i-1][j-1][k]*(j-k)*(j>=k)+dp[i-1][j+1][k]*j)%mod; } cout<<dp[n][1][2]<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...