Submission #1129705

#TimeUsernameProblemLanguageResultExecution timeMemory
1129705hamzahasa067Kangaroo (CEOI16_kangaroo)C++20
100 / 100
34 ms32072 KiB
// يارب الخلاص عشان خلاص #include<bits/stdc++.h> using namespace std; #define int long long const int MOD = 1e9 +7; int add(int a,int b) { return (a+b) % MOD; } int mul(int a,int b) { return (a*b) % MOD; } main() { ios_base::sync_with_stdio(0), cin.tie(nullptr),cout.tie(nullptr); int n,cs,cf; cin >> n >> cs >> cf; vector<vector<int>> dp(n+10, vector<int>(n+10)); dp[1][1] = 1; int cntFix = 0; for(int i = 1;i<=n;i++) { cntFix += i == cs; cntFix += i == cf; for(int j = 1;j<=i;j++) { if(i+1 == cs or i+1 == cf) { dp[i+1][j+1] = add(dp[i+1][j+1],dp[i][j]); // creates new component where i+1 goes to the beginning dp[i+1][j] = add(dp[i+1][j],dp[i][j]); // at i+1 to the beginning of an already existing component } else { dp[i+1][j-1] = add(dp[i+1][j-1] , mul(j-1, dp[i][j])); // merge two components inserting i+1 at any beginning or at any end dp[i+1][j+1] = add(dp[i+1][j+1] , mul(j+1 - cntFix, dp[i][j])); // create new component using i+1 at any beginning or at any end, but with respect to the fixed starts and ends } } } cout << dp[n][1] ; return 0; }

Compilation message (stderr)

kangaroo.cpp:18:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   18 | main() {
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...