91022024-02-13 23:28:00RRoliKombináció (50)cpp17Elfogadva 50/503ms4128 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ÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/03ms1912 KiB
2Elfogadva0/03ms2100 KiB
3Elfogadva2/23ms2316 KiB
4Elfogadva2/23ms2504 KiB
5Elfogadva2/23ms2852 KiB
6Elfogadva2/23ms3024 KiB
7Elfogadva2/23ms3328 KiB
8Elfogadva2/23ms3244 KiB
9Elfogadva2/23ms3508 KiB
10Elfogadva4/43ms3508 KiB
11Elfogadva4/43ms3592 KiB
12Elfogadva4/43ms3708 KiB
13Elfogadva4/43ms3756 KiB
14Elfogadva4/43ms3652 KiB
15Elfogadva4/43ms3904 KiB
16Elfogadva6/63ms3876 KiB
17Elfogadva6/63ms4128 KiB