9102 2024. 02. 13 23:28:00 RRoli Kombináció (50) cpp17 Elfogadva 50/50 3ms 4128 KiB
#include <bits/stdc++.h>
using namespace std;

int n, m, a[102], b[102];

void csokkent(int k) {
    a[k]--;
    if(a[k] <= a[k-1]) {
        a[k] = a[k+1]-1;
        csokkent(k-1);
    }
}

void novel(int k) {
    if(b[k]+1 < b[k+1]) {
        b[k]++;
        for(int i = k+1; i <= m; i++) b[i] = b[i-1] + 1;
    } else {
        novel(k-1);
    }
}



int main()
{
    cin >> n >> m;
    for(int i = 1; i <= m; i++) {
        cin >> a[i]; 
        b[i] = a[i];
    }
    a[m+1] = n+1; b[m+1] = n+1;

    bool csaknem = true;
    for(int i = 1; i <= m; i++) if(a[i] != i) csaknem = false;

    if(csaknem) for(int i = m, j = n; i >= 1; i--, j--) a[i] = j;
    else csokkent(m);

    for(int i = 1; i <= m; i++) cout << a[i] << ' ';
    cout << endl;


    bool csak_nem = true;
    for(int i = m, j = n; i >= 1; i--, j--) if(b[i] != j) csak_nem = false;

    if(csak_nem) for(int i = 1; i <= m; i++) b[i] = i;
    else novel(m);

    for(int i = 1; i <= m; i++) cout << b[i] << ' ';

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1912 KiB
2 Elfogadva 0/0 3ms 2100 KiB
3 Elfogadva 2/2 3ms 2316 KiB
4 Elfogadva 2/2 3ms 2504 KiB
5 Elfogadva 2/2 3ms 2852 KiB
6 Elfogadva 2/2 3ms 3024 KiB
7 Elfogadva 2/2 3ms 3328 KiB
8 Elfogadva 2/2 3ms 3244 KiB
9 Elfogadva 2/2 3ms 3508 KiB
10 Elfogadva 4/4 3ms 3508 KiB
11 Elfogadva 4/4 3ms 3592 KiB
12 Elfogadva 4/4 3ms 3708 KiB
13 Elfogadva 4/4 3ms 3756 KiB
14 Elfogadva 4/4 3ms 3652 KiB
15 Elfogadva 4/4 3ms 3904 KiB
16 Elfogadva 6/6 3ms 3876 KiB
17 Elfogadva 6/6 3ms 4128 KiB