20512022-12-15 22:42:59kovacs.peter.18fKombináció (50)cpp11Partially correct 43/503ms3620 KiB
#include <iostream>
#include <vector>

using namespace std;

int main() {
    cin.sync_with_stdio(false);
    cin.tie(nullptr);

    int N, M;
    cin >> N >> M;
    vector<int> chairS(M);
    for (auto &e : chairS) {
        cin >> e;
    }
    int index;
    if (chairS[M - 1] == M) {
        index = -1;
    }
    else {
        // előző: csökkentjük a legutolsót, amit nem előz meg nála eggyel kisebb szám; a továbbiak a lehetséges értékek legvége lesznek
        index = M - 1;
        while (index > 0 && chairS[index] == chairS[index - 1] + 1) {
            --index;
        }
        for (int i = 0; i < index; i++) {
            cout << chairS[i] << " ";
        }
        cout << chairS[index] - 1 << " ";
    }
    for (int i = index + 1; i < M; i++) {
        cout << N - (M - 1 - i) << " ";
    }
    cout << '\n';
    if (chairS[0] == N - (M - 1)) {
        index = 0;
        chairS[0] = 1;
    }
    else {
        // következő: növeljük a legutolsót, amit még növelhetünk; a továbbiak közvetlenül utána következnek
        index = M - 1;
        while (index > 0 && chairS[index] == N - (M - 1) + index) {
            --index;
        }
        for (int i = 0; i < index; i++) {
            cout << chairS[i] << " ";
        }
        cout << ++chairS[index] << " ";
    }
    for (int i = index + 1; i < M; i++) {
        chairS[i] = chairS[i - 1] + 1;
        cout << chairS[i] << " ";
    }
    cout << '\n';
}
SubtaskSumTestVerdictTimeMemory
base43/50
1Accepted0/03ms1824 KiB
2Accepted0/02ms2064 KiB
3Partially correct1/22ms2124 KiB
4Accepted2/22ms2324 KiB
5Accepted2/22ms2424 KiB
6Partially correct1/22ms2400 KiB
7Accepted2/22ms2528 KiB
8Partially correct1/22ms2728 KiB
9Accepted2/22ms2804 KiB
10Partially correct2/42ms3048 KiB
11Accepted4/42ms3008 KiB
12Accepted4/42ms3140 KiB
13Accepted4/42ms3212 KiB
14Partially correct2/42ms3344 KiB
15Accepted4/42ms3572 KiB
16Accepted6/62ms3488 KiB
17Accepted6/62ms3620 KiB