Submission #425409

#TimeUsernameProblemLanguageResultExecution timeMemory
425409Lam_lai_cuoc_doi캥거루 (CEOI16_kangaroo)C++17
0 / 100
9 ms15948 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using ld = long double; using ull = unsigned long long; constexpr bool typetest = 0; constexpr int N = 2e3 + 2; int n, cs, cf, v; int dp[N][N], f1[N][N]; void Read() { cin >> n >> cs >> cf; if (cs > cf) swap(cs, cf); v = n - cf; } ll f(int n, int i) { if (dp[n][i] != -1) return dp[n][i]; if (i == 1) return dp[n][i] = f1[n][n - v]; if (i == 2) return dp[n][i] = f1[n][n - v] + f1[n - 1][n - 1 - v]; return dp[n][i] = 2 * f(n, i - 1) - f(n, i - 2) - f(n - 2, i - 2); } void Solve() { f1[1][1] = 1; for (int i = 2; i <= n; ++i) { if (i & 1) f1[i][2] = 1; for (int j = 2; j <= i; ++j) f1[i][j] += (i & 1) ? f1[i][j - 1] - f1[i - 1][j - 1] : f1[i][j - 1] + f1[i - 1][j - 1]; } memset(dp, -1, sizeof dp); cout << f(n, cs); } int32_t main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t(1); if (typetest) cin >> t; for (int _ = 1; _ <= t; ++_) { Read(); Solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...