Submission #601705

#TimeUsernameProblemLanguageResultExecution timeMemory
601705Soumya1Kangaroo (CEOI16_kangaroo)C++17
100 / 100
14 ms340 KiB
#include <bits/stdc++.h> #ifdef __LOCAL__ #include <debug_local.h> #endif using namespace std; const int mod = 1e9 + 7; void testCase() { int n, s, f; cin >> n >> s >> f; s--, f--; vector<int> dp(n + 1); dp[1] = 1; auto add = [&](int a, int b) { return (a + b) % mod; }; auto mul = [&](int a, int b) { return (1LL * a * b) % mod; }; auto add_self = [&](int &a, int b) { return (a += b) %= mod; }; for (int i = 1; i < n; i++) { vector<int> new_dp(n + 1); for (int j = 1; j <= i; j++) { if (i == s || i == f) { add_self(new_dp[j], dp[j]); add_self(new_dp[j + 1], dp[j]); continue; } int c = (i > s) + (i > f); add_self(new_dp[j + 1], mul(dp[j], j + 1 - c)); add_self(new_dp[j - 1], mul(dp[j], j - 1)); } dp = new_dp; } cout << dp[1] << "\n"; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); testCase(); }

Compilation message (stderr)

kangaroo.cpp: In function 'void testCase()':
kangaroo.cpp:13:8: warning: variable 'add' set but not used [-Wunused-but-set-variable]
   13 |   auto add = [&](int a, int b) { return (a + b) % mod; };
      |        ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...