Submission #1273330

#TimeUsernameProblemLanguageResultExecution timeMemory
1273330madamadam3Kangaroo (CEOI16_kangaroo)C++20
6 / 100
1 ms572 KiB
#include <bits/stdc++.h>

using namespace std;

int main() {
    int n, s, t; cin >> n >> s >> t;
    vector<int> r1({1});

    for (int i = 2; i <= n; i++) {
        vector<int> nr1(i, 0);

        if (i % 2 == 0) for (int j = 1; j < i; j++) nr1[j] = r1[j-1] + nr1[j-1];
        else for (int j = i-2; j >= 1; j--) nr1[j] = nr1[j+1] + r1[j];

        r1 = nr1;
    }

    vector<vector<int>> table(n, vector<int>(n, 0));
    table[0] = r1;

    for (int i = 1; i < n; i++) {
        if (n % 2 == 0) {
            for (int j = i+1; j < n; j++) {
                table[i][j] = table[i-1][j] + (table[i-1][j] - table[i-1][j-1]);
            }
        } else {
            int pt = 1;
            for (int j = i+1; j < n; j++) {
                table[i][j] = table[0][pt];
                pt++;
            }
        }
    }

    for (int i = 0; i < n; i++) {
        for (int j = i+1; j < n; j++) {
            table[j][i] = table[i][j];
        }
    }

    // for (int i = 0; i < n; i++) {
    //     for (int j = 0; j < n; j++) {
    //         cout << table[i][j] << "\t";
    //     }
    //     cout << "\n";
    // }

    cout << table[s-1][t-1] << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...