제출 #1317804

#제출 시각아이디문제언어결과실행 시간메모리
1317804Sofiatpc캥거루 (CEOI16_kangaroo)C++20
0 / 100
0 ms332 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 2005, MOD = 1e9+7; int dp[MAXN][MAXN]; signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n, ini, fim; cin>>n>>ini>>fim; int ans = 0; dp[n+1][1] = 1; for(int x = 0; x < 2; x++) for(int y = 0; y < 2; y++){ if(x == 0 && ini == 1)continue; if(y == 0 && fim == 1)continue; int qtd = 0; for(int i = n; i >= 1; i--) for(int c = 1; c <= n; c++){ if(i == ini){ if(x == 0)dp[i][c] = dp[i+1][c]; else dp[i][c] = dp[i+1][c+1]; qtd++; } else if(i == fim){ if(y == 0)dp[i][c] = dp[i+1][c]; else dp[i][c] = dp[i+1][c+1]; qtd++; }else{ dp[i][c] = (dp[i+1][c+1] * (c + 1 - qtd))%MOD + (dp[i+1][c-1]*(c-1))%MOD; dp[i][c] %= MOD; } } ans = (ans + dp[2][1])%MOD; } cout<<ans<<"\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...