186642025-10-29 20:39:31KristófKombináció (50)cpp17Részben helyes 43/501ms520 KiB
#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int n, m;
    cin >> n >> m;
    vector<int> most(m + 1, 0);
    vector<int> elso(m + 1, 0);
    vector<int> utso(m + 1, 0);

    for (int i = 1; i <= m; i++)
    {
        elso[i] = i;
        cin >> most[i];
    }
    for (int i = 1; i <= m; i++)
        utso[i] = n - m + i;

    if (most == utso)
    {
        for (int i = 1; i <= m; i++)
        {
            most[i]--;
            cout << most[i] << " ";
        }
        cout << endl;
        for (int i = 1; i <= m; i++)
            cout << elso[i] << " ";
        return 0;
    }

    if (most == elso)
    {
        for (int i = 1; i <= m; i++)
            cout << utso[i] << " ";
        cout << endl;
        most[m]++;
        for (int i = 1; i <= m; i++)
            cout << most[i] << " ";
        return 0;
    }

    // --- előző kombináció ---
    vector<int> elozo = most;
    for (int i = m; i > 0; i--)
    {
        if ((i == 1 && most[i] > 1) || (i > 1 && most[i] - 1 > most[i - 1]))
        {
            elozo[i]--;
            for (int j = i + 1; j <= m; j++)
                elozo[j] = n - (m - j);
            for (int i = 1; i <= m; i++)
                cout << elozo[i] << " ";
            break;
        }
    }

    cout << endl;

    // --- következő kombináció ---
    vector<int> kov = most;
    kov.push_back(n + 1);
    for (int i = m; i > 0; i--)
    {
        if (most[i] + 1 < kov[i + 1])
        {
            kov[i]++;
            for (int j = i + 1; j <= m; j++)
                kov[j] = kov[j - 1] + 1;
            for (int i = 1; i <= m; i++)
                cout << kov[i] << " ";
            break;
        }
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base43/50
1Elfogadva0/01ms508 KiB
2Elfogadva0/01ms316 KiB
3Részben helyes1/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms328 KiB
6Részben helyes1/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Részben helyes1/21ms500 KiB
9Elfogadva2/21ms520 KiB
10Részben helyes2/41ms320 KiB
11Elfogadva4/41ms316 KiB
12Elfogadva4/41ms316 KiB
13Elfogadva4/41ms316 KiB
14Részben helyes2/41ms316 KiB
15Elfogadva4/41ms316 KiB
16Elfogadva6/61ms376 KiB
17Elfogadva6/61ms316 KiB