제출 #504035

#제출 시각아이디문제언어결과실행 시간메모리
504035pokmui9909캥거루 (CEOI16_kangaroo)C++17
100 / 100
21 ms22980 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

const ll MOD = 1e9 + 7;
ll D[2005][2005];
ll N, S, E;
void add(ll &x, ll y){
    y %= MOD;
    x += y;
    x %= MOD;
}
  
int main(){
    cin.tie(0) -> sync_with_stdio(false);

    cin >> N >> S >> E;
    ll C = 0;
    D[0][0] = 1;
    for(int i = 1; i <= N; i++){
        for(int j = 1; j <= i; j++){
            if(i == S || i == E){
                add(D[i][j], D[i - 1][j] + D[i - 1][j - 1]);
            } else {
                add(D[i][j], D[i - 1][j + 1] * j + D[i - 1][j - 1] * (j - C));
            }
        }
        if(i == S || i == E){
            C++;
        }
    }
    cout << D[N][1];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...