(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 #328495

#TimeUsernameProblemLanguageResultExecution timeMemory
328495EndRayKangaroo (CEOI16_kangaroo)C++17
100 / 100
17 ms23020 KiB
#include<bits/stdc++.h> #define ll long long using namespace std; const int N = 2000+1, mod = 1e9+7; int n, a, b; ll dp[N][N]; int main(){ ios_base::sync_with_stdio(false); cout.tie(0); cin.tie(0); cin >> n >> a >> b; dp[0][0] = 1; for(int i = 1; i <= n; ++i){ if(i == a || i == b) for(int j = 1; j <= i; ++j) dp[i][j] = (dp[i-1][j-1] + dp[i-1][j])%mod; else for(int j = 1; j <= i; ++j){ int not_edges = j - 2 + (i < a) + (i < b); dp[i][j] = (dp[i-1][j+1]*j + dp[i-1][j-1]*not_edges)%mod; } } cout << dp[n][1] << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...