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

#TimeUsernameProblemLanguageResultExecution timeMemory
480893JooKangaroo (CEOI16_kangaroo)C++17
100 / 100
48 ms22956 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; const int N = 2e3+10; int n,St,Ed; ll dp[N][N],mod = 1e9+7; int main(void){ cin >> n >> St >> Ed; dp[1][1] = 1; for(int i = 1; i < n; i++){ for(int j = 1; j <= i; j++){ if(i + 1 == St or i + 1 == Ed){ dp[i+1][j] += dp[i][j]; dp[i+1][j] %= mod; dp[i+1][j+1] += dp[i][j]; dp[i+1][j+1] %= mod; }else{ dp[i+1][j-1] += dp[i][j]*(j-1); dp[i+1][j-1] %= mod; dp[i+1][j+1] += dp[i][j]*(j+1-(i >= St)-(i >= Ed)); dp[i+1][j+1] %= mod; } } } cout << dp[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...