# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1193905 | Muhammad_Aneeq | Kangaroo (CEOI16_kangaroo) | C++20 | 41 ms | 55112 KiB |
/*
بسم الله الرحمن الرحيم
Author:
(:Muhammad Aneeq:)
*/
#include <iostream>
#warning check the output
using namespace std;
int const N=2e3+10,mod=1e9+7;
long long dp[N][N][3]={};
inline void solve()
{
int n;
int st,en;
cin>>n;
cin>>st>>en;
dp[1][1][(st==1)+(en==1)]=1;
for (int i=1;i<n;i++)
{
for (long long j=1;j<=i;j++)
{
if (i+1==st||i+1==en)
{
for (int k=1;k<=2;k++)
{
dp[i+1][j+1][k]+=(dp[i][j][k-1]);
dp[i+1][j][k]+=(dp[i][j][k-1]);
dp[i+1][j+1][k]%=mod;
dp[i+1][j][k]%=mod;
}
}
else
{
for (int k=0;k<3;k++)
{
dp[i+1][j+1][k]+=(dp[i][j][k]*(j+1-k));
dp[i+1][j-1][k]+=(dp[i][j][k]*(j-1));
dp[i+1][j+1][k]%=mod;
dp[i+1][j-1][k]%=mod;
}
}
}
}
cout<<dp[n][1][2]<<endl;
}
int main()
{
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
int t=1;
for (int i=1;i<=t;i++)
{
solve();
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |