Submission #552809

#TimeUsernameProblemLanguageResultExecution timeMemory
552809Ai7081Kangaroo (CEOI16_kangaroo)C++17
100 / 100
15 ms22996 KiB
#include <bits/stdc++.h>
using namespace std;
#define long long long

const long N = 2005;
const long mod = 1e9+7;

int n, s, f;
long dp[N][N];

int main() {
    scanf(" %d %d %d", &n, &s, &f);
    dp[1][1] = 1;
    for (int i=2; i<=n; i++) {
        for (int j=1; j<=i; j++) {
            if (i==s || i==f) dp[i][j] = (dp[i-1][j] + dp[i-1][j-1]) % mod;
            else dp[i][j] = (j*dp[i-1][j+1] + dp[i-1][j-1]*(j-(i>s)-(i>f))) % mod;
        }
    }
    printf("%lld", dp[n][1]%mod);
    return 0;
}

Compilation message (stderr)

kangaroo.cpp: In function 'int main()':
kangaroo.cpp:12:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |     scanf(" %d %d %d", &n, &s, &f);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...