Submission #605469

#TimeUsernameProblemLanguageResultExecution timeMemory
605469sofapuden캥거루 (CEOI16_kangaroo)C++14
100 / 100
24 ms31820 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int mxN = 2e3+5; const int MOD = 1e9+7; ll dp[mxN][mxN]; int n, cs, cf; int main(){ cin >> n >> cs >> cf; cs--, cf--; memset(dp,0,sizeof dp); dp[1][1] = 1; for(int i = 1; i < n; ++i){ for(int j = 1; j <= i; ++j){ if(i == cs || i == cf){ dp[i+1][j]+=dp[i][j]; dp[i+1][j]%=MOD; dp[i+1][j+1]+=dp[i][j]; dp[i+1][j+1]%=MOD; } else { dp[i+1][j-1]+=dp[i][j]*(j-1); dp[i+1][j-1]%=MOD; dp[i+1][j+1]+=(dp[i][j]*(j+1-(i>cs)-(i>cf))); dp[i+1][j+1]%=MOD; } } } cout << dp[n][1] << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...