제출 #1354539

#제출 시각아이디문제언어결과실행 시간메모리
1354539uranhishig캥거루 (CEOI16_kangaroo)C++20
0 / 100
0 ms344 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

const int mod = 1e9 + 7;

signed main() {
    int n, cs, cf;
    cin >> n >> cs >> cf;
    // if(n <= 8){
    //     vector<int> a(n);
    //     for (int i = 0; i < n; i++) {
    //         a[i] = i + 1;
    //     }
    //     int cnt = 0;
    //     do{
    //         if(a[0] == cs and a[n - 1] == cf){
    //             bool ok = true;
    //             for (int i = 1; i < n-1; i++) {
    //                 int pre = a[i - 1];
    //                 int cur = a[i];
    //                 int nxt = a[i + 1];
    //                 if(pre < cur and nxt >= cur) {
    //                     ok = false;
    //                     break;
    //                 }
    //                 if(pre >= cur and nxt <= cur){
    //                     ok = false;
    //                     break;
    //                 }
    //             }
    //             if(ok) cnt++;
    //         }

    //     }while(next_permutation(a.begin(), a.end()));
    //     cout << cnt;
    //     return 0;
    // }


    int dp[n + 1][n + 1][2]; 
    int last = -1;
    dp[cs][cs][0] = 1;
    dp[cs][cs][1] = 1;
    for (int len = 1; len <= n; len++) {
        for (int l = 1; l <= n; l++) {
            int r = l + len - 1;
            if(l >= 2) dp[l-1][r][1] += dp[l][r][0];
            if(r <= n - 1) dp[l][r + 1][0] += dp[l][r][1];

        }
    }
    // for (int l = 1; l <= n; l++) {
    //     for (int r = l; r <= n; r++) {
    //         if(l >= 2) dp[l-1][r][1] += dp[l][r][0];
    //         if(r <= n - 1) dp[l][r + 1][0] += dp[l][r][1];
    //     }
    // }
    int ans;
    if (cf == 1) {
        ans = dp[1][n][0] + dp[1][n][1];
    } 
    else if (cf == n) {
        ans = dp[1][n][0] + dp[1][n][1];
    }
    cout << ans;
    return 0;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…