제출 #1118226

#제출 시각아이디문제언어결과실행 시간메모리
1118226vjudge1캥거루 (CEOI16_kangaroo)C++17
100 / 100
35 ms31868 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define ld double const int INF = 1e18; const int mod = 1e9 + 7; signed main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, s , f; cin >> n >> s >> f; vector < vector < int > > dp(n + 1 , vector < int > (n + 1)); dp[1][1] = 1; int fixed = 0; for(int i = 1;i <= n;i++) { fixed += (i == s or i == f); for(int j = 1;j < i;j++) { if(i == s or i == f) { dp[i][j + 1] = (dp[i][j + 1] + dp[i - 1][j]) % mod; dp[i][j] = (dp[i][j] + dp[i - 1][j]) % mod; } else { dp[i][j + 1] = (dp[i][j + 1] + (dp[i - 1][j] * (j + 1 - fixed))) % mod; dp[i][j - 1] = (dp[i][j - 1] + (dp[i - 1][j] * (j - 1))) % mod; } } } cout << dp[n][1] << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...