Submission #443582

#TimeUsernameProblemLanguageResultExecution timeMemory
443582rodovKangaroo (CEOI16_kangaroo)C++14
100 / 100
25 ms31784 KiB
#include <bits/stdc++.h>

using namespace std;

const long long MOD = 1000000007;

long long d[2007][2007];
long long n,s,f;

int main() {
    d[1][1] = 1;
    cin >> n >> s >> f;
    for(int i=2; i<=n; i++) {
        for(int j=0; j<=n; j++) {
            if(i==s || i==f) d[i][j] = d[i-1][j]+d[i-1][j-1];
            else d[i][j] = d[i-1][j+1]*j + d[i-1][j-1]*(j - int(i>s) - int(i>f));
            d[i][j] %= MOD;
        }
    }
    cout << d[n][1] << endl;
    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...