5292 2023. 04. 25 15:46:12 Ablablabla Következő permutáció (50 pont) cpp17 Elfogadva 50/50 7ms 4812 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    cin >> n;

    vector<int> sorozat(n);

    for(int i = 0; i < n; i++){
        cin >> sorozat[i];
    }

    int hatar = 0;
    vector<int> kiszed(1, sorozat[n - 1]);

    for(int i = n - 2; i >= 0; i--){
        kiszed.push_back(sorozat[i]);
        if(sorozat[i] < sorozat[i + 1]){
            hatar = i;
            break;
        }
    }

    sort(kiszed.begin(), kiszed.end());

    /*for(int x : kiszed){
        cout << x << " ";
    }
    cout << "\n";*/

    int hatar2 = 0;

    for(int i = 0; i < kiszed.size(); i++){
        if(kiszed[i] == sorozat[hatar]){
            sorozat[hatar] = kiszed[i + 1];
            hatar2 = i + 1;
            break;
        }
    }

    int helyzet = hatar + 1;

    for(int i = hatar2 - 1; i >= 0; i--){
        sorozat[helyzet] = kiszed[i];
        helyzet++;
    }

    for(int i = hatar2 + 1; i < kiszed.size(); i++){
        sorozat[helyzet] = kiszed[i];
        helyzet++;
    }

    for(int x : sorozat){
        cout << x << " ";
    }
    cout << "\n";
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1812 KiB
2 Elfogadva 0/0 4ms 2084 KiB
3 Elfogadva 1/1 3ms 2268 KiB
4 Elfogadva 1/1 2ms 2356 KiB
5 Elfogadva 1/1 2ms 2420 KiB
6 Elfogadva 1/1 2ms 2668 KiB
7 Elfogadva 2/2 3ms 2884 KiB
8 Elfogadva 2/2 3ms 3068 KiB
9 Elfogadva 2/2 2ms 3144 KiB
10 Elfogadva 2/2 2ms 3152 KiB
11 Elfogadva 1/1 2ms 3156 KiB
12 Elfogadva 1/1 2ms 3268 KiB
13 Elfogadva 1/1 2ms 3288 KiB
14 Elfogadva 1/1 2ms 3368 KiB
15 Elfogadva 3/3 3ms 3496 KiB
16 Elfogadva 3/3 3ms 3608 KiB
17 Elfogadva 3/3 3ms 3588 KiB
18 Elfogadva 3/3 3ms 3588 KiB
19 Elfogadva 3/3 4ms 3732 KiB
20 Elfogadva 3/3 6ms 3832 KiB
21 Elfogadva 3/3 6ms 4084 KiB
22 Elfogadva 3/3 7ms 4420 KiB
23 Elfogadva 3/3 6ms 4376 KiB
24 Elfogadva 3/3 7ms 4508 KiB
25 Elfogadva 2/2 7ms 4812 KiB
26 Elfogadva 2/2 6ms 4596 KiB