Submission #1200513

#TimeUsernameProblemLanguageResultExecution timeMemory
1200513HoriaHaivasKangaroo (CEOI16_kangaroo)C++20
0 / 100
0 ms324 KiB
#include<bits/stdc++.h> #define debug(x) cerr << #x << " " << x << "\n" #define debugs(x) cerr << #x << " " << x << " " #pragma GCC optimize("Ofast") #define int long long using namespace std; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); int range_rng(int l, int r) { return uniform_int_distribution<int>(l,r)(rng); } const int mod=1e9+7; int dp[2005][2005]; void add(int &a, int b) { if (b<0) return; a+=b; while (a>=mod) a-=mod; } signed main() { //ifstream fin("felinare.in"); //ofstream fout("felinare.out"); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,i,j,cs,cf,blocked; cin >> n >> cs >> cf; blocked=0; dp[0][0]=1; for (i=1;i<=n;i++) { for (j=1;j<=i;j++) { if (i==cs || i==cf) { add(dp[i][j],dp[i-1][j-1]*1); add(dp[i][j],dp[i-1][j]*1); blocked++; } else { add(dp[i][j],dp[i-1][j-1]*((j-1)+1-blocked)); add(dp[i][j],dp[i-1][j+1]*((j+1)-1)); } } } cout << dp[n][1]; 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...