Submission #505035

#TimeUsernameProblemLanguageResultExecution timeMemory
505035lethinh05Kangaroo (CEOI16_kangaroo)C++11
100 / 100
20 ms22944 KiB
#include <bits/stdc++.h> #define oo 1000000007 #define ll long long #define ld long double #define ii pair<int, int> #define pll pair<ll, ll> #define ff first #define ss second #define vi vector<int> #define vii vector<ii> #define sz(a) (int)(a.size()) #define pb push_back #define fto(i, a, b) for (int i = (int)(a); i <= (int)(b); ++i) #define fdto(i, a, b) for (int i = (int)(a); i >= (int)(b); --i) #define bug(x) "["#x" = "<<(x)<<"] " #define maxN 2005 using namespace std; const int MOD = oo; int n, cs, cf; ll f[maxN][maxN]; int main() { #ifndef EVAL freopen("CEOI16_kangaroo.INP", "r", stdin); freopen("CEOI16_kangaroo.OUT", "w", stdout); #endif ios_base::sync_with_stdio(false); cin.tie(0); cin >> n >> cs >> cf; f[1][1] = 1; fto(i, 2, n) { fto(j, 1, i) { if (i == cs || i == cf) { f[i][j] = (f[i-1][j-1] + f[i-1][j])%MOD; } else { f[i][j] = (f[i-1][j-1]*(j - (i > cs) - (i > cf))%MOD + f[i-1][j+1]*j%MOD)%MOD; } } } cout << f[n][1] << '\n'; 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...