Submission #543125

#TimeUsernameProblemLanguageResultExecution timeMemory
543125iulia13Kangaroo (CEOI16_kangaroo)C++14
100 / 100
30 ms22924 KiB
#include <bits/stdc++.h> using namespace std; const int N = 2005; #define ll long long const ll mod = 1e9 + 7; void sum(ll &a, ll b) { a += b; if (a >= mod) a -= mod; } ll dp[N][N]; int main() { ll n, cs, cf; cin >> n >> cs >> cf; dp[1][1] = 1; for (ll i = 1; i <= n; i++) for (ll j = 1; j <= i; j++) { if (i == cs || i == cf) { sum(dp[i][j], dp[i - 1][j - 1]); sum(dp[i][j], dp[i - 1][j]); continue; } sum(dp[i][j], dp[i - 1][j + 1] * j % mod); sum(dp[i][j], (dp[i - 1][j - 1] * ((j - 2ll) + 1ll * (i < cs) + 1ll * (i < cf))) % mod); } cout << dp[n][1]; 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...