5066 2023. 04. 13 17:34:33 czita Következő permutáció (50 pont) cpp11 Elfogadva 50/50 7ms 4388 KiB
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n = 6000;
    cin >> n;
    vector<int> X(n, 0);

    for (size_t i = 0; i < n; i++)
    {
        cin >> X[i];
    }
    vector<int> Y;
    int db = n - 1;
    // Y.push_back(X[n - 1]);
    while (db > 0 && (X[db] <= X[db - 1]))
    {
        Y.push_back(X[db]);
        db--;
    }
    int ut = X[db - 1];
    Y.push_back(X[db]);
    Y.push_back(X[db - 1]);
    sort(Y.begin(), Y.end());
    int maxy = Y.size() - 1;
    while (Y[maxy - 1] > ut)
    {
        maxy--;
    }
    X[db - 1] = Y[maxy];
    for (int i = maxy - 1; i >= 0; i--)//berakja a kisebb elemeket
    {

        X[db] = Y[i];
        db++;

    }
    int maxx = Y.size() - 1;
    for (int i =maxy+1; i < Y.size(); i++)
    {

        X[db] = Y[i];
        db++;

    }
    for (auto a : X)
    {
        cout << a << " ";
    }
    cout << endl;

}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1812 KiB
2 Elfogadva 0/0 4ms 2024 KiB
3 Elfogadva 1/1 2ms 2216 KiB
4 Elfogadva 1/1 2ms 2432 KiB
5 Elfogadva 1/1 3ms 2636 KiB
6 Elfogadva 1/1 3ms 2852 KiB
7 Elfogadva 2/2 3ms 3092 KiB
8 Elfogadva 2/2 3ms 3428 KiB
9 Elfogadva 2/2 3ms 3636 KiB
10 Elfogadva 2/2 2ms 3560 KiB
11 Elfogadva 1/1 3ms 3684 KiB
12 Elfogadva 1/1 2ms 3764 KiB
13 Elfogadva 1/1 3ms 3728 KiB
14 Elfogadva 1/1 3ms 3976 KiB
15 Elfogadva 3/3 3ms 4096 KiB
16 Elfogadva 3/3 3ms 3980 KiB
17 Elfogadva 3/3 3ms 3952 KiB
18 Elfogadva 3/3 3ms 3956 KiB
19 Elfogadva 3/3 4ms 3976 KiB
20 Elfogadva 3/3 6ms 4056 KiB
21 Elfogadva 3/3 6ms 4064 KiB
22 Elfogadva 3/3 6ms 4148 KiB
23 Elfogadva 3/3 6ms 4224 KiB
24 Elfogadva 3/3 6ms 4212 KiB
25 Elfogadva 2/2 7ms 4364 KiB
26 Elfogadva 2/2 7ms 4388 KiB