10965 2024. 04. 22 16:04:23 Vargus Kombináció (50) cpp17 Hibás válasz 35/50 3ms 3932 KiB
#include <iostream>
#include <queue>
#define ll long long

using namespace std;

vector <ll> x, y, z;
ll n, k;

bool jo(ll lep)
{
    if (y[lep - 1] <= y[lep] && y[lep] >= x[lep])
        return true;
    return false;
}

int main()
{
    cin >> n >> k;
    x.resize(k + 1);
    y.resize(k + 1);
    z.resize(k + 1);
    for (ll i = 1; i <= k; ++i)
    {
        cin >> x[i];
        y[i] = x[i];
        z[i] = x[i];
    }

    ll n1;
    for (ll i = k; i >= 1; --i)
    {
        n1 = n - k + i;
        if (y[i] != n1)
        {
            y[i]++;
            for (ll j = i + 1; j <= k; ++j)
                y[j] = y[j - 1] + 1;
            break;
        }
    }

    bool ok = false;
    for (ll i = 1; i <= k; ++i)
    {
        n1 = n - k + i;
        if (z[i] == n1)
        {
            z[i]--;
            ok = true;
            break;
        }
    }
    if (!ok)
    {
        z[1]--;
        for (ll i = 2; i <= k; ++i)
            z[i]++;
    }

    for (ll i = 1; i <= k; ++i)
        cout << z[i] << " ";

    cout << "\n";
    for (ll i = 1; i <= k; ++i)
        cout << y[i] << " ";

    return 0;
}
/*
6 4
1 4 5 6

5 3
3 4 5
*/
Részfeladat Összpont Teszt Verdikt Idő Memória
base 35/50
1 Elfogadva 0/0 3ms 1748 KiB
2 Hibás válasz 0/0 3ms 1992 KiB
3 Részben helyes 1/2 3ms 2232 KiB
4 Elfogadva 2/2 3ms 2484 KiB
5 Részben helyes 1/2 3ms 2632 KiB
6 Részben helyes 1/2 3ms 2836 KiB
7 Részben helyes 1/2 3ms 3052 KiB
8 Részben helyes 1/2 3ms 3056 KiB
9 Részben helyes 1/2 3ms 3184 KiB
10 Részben helyes 2/4 3ms 3268 KiB
11 Elfogadva 4/4 3ms 3268 KiB
12 Elfogadva 4/4 3ms 3392 KiB
13 Elfogadva 4/4 3ms 3480 KiB
14 Részben helyes 2/4 3ms 3724 KiB
15 Részben helyes 2/4 3ms 3724 KiB
16 Elfogadva 6/6 3ms 3848 KiB
17 Részben helyes 3/6 3ms 3932 KiB