(UPD: 2024-12-04 14:48 UTC) Judge is not working due to Cloudflare incident. (URL) We can do nothing about it, sorry. After the incident is resolved, we will grade all submissions.

Submission #316400

#TimeUsernameProblemLanguageResultExecution timeMemory
316400nouvo25Kangaroo (CEOI16_kangaroo)C++14
100 / 100
33 ms14208 KiB
#include <bits/stdc++.h> #define fi first #define se second #define ll long long #define io ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0) using namespace std; const int MOD = 1e9 + 7, MAXN = 2007; int dp[MAXN][MAXN] = {}, n, cs, cf; void add(int &a, const int &b) { a += b; if (a >= MOD) a -= MOD; } int main() { // freopen("test.INP","r", stdin); io; cin >> n >> cs >> cf; dp[0][0] = 1; for (int i = 1; i < n; ++i) { for (int j = 0; j <= i; ++j) { if (i == cs || i == cf) { add(dp[i][j], dp[i - 1][j]); add(dp[i][j], 1LL*(j + 1)*dp[i - 1][j + 1] % MOD); }else { add(dp[i][j], 1LL*j*(j + 1)*dp[i - 1][j + 1] % MOD); if (j) add(dp[i][j], dp[i - 1][j - 1]); if (i > cs) add(dp[i][j], 1LL*(j + 1)*dp[i - 1][j + 1] % MOD); if (i > cf) add(dp[i][j], 1LL*(j + 1)*dp[i - 1][j + 1] % MOD); } } } cout << dp[n - 1][0]; 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...