52922023-04-25 15:46:12AblablablaKövetkező permutáció (50 pont)cpp17Accepted 50/507ms4812 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";
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/03ms1812 KiB
2Accepted0/04ms2084 KiB
3Accepted1/13ms2268 KiB
4Accepted1/12ms2356 KiB
5Accepted1/12ms2420 KiB
6Accepted1/12ms2668 KiB
7Accepted2/23ms2884 KiB
8Accepted2/23ms3068 KiB
9Accepted2/22ms3144 KiB
10Accepted2/22ms3152 KiB
11Accepted1/12ms3156 KiB
12Accepted1/12ms3268 KiB
13Accepted1/12ms3288 KiB
14Accepted1/12ms3368 KiB
15Accepted3/33ms3496 KiB
16Accepted3/33ms3608 KiB
17Accepted3/33ms3588 KiB
18Accepted3/33ms3588 KiB
19Accepted3/34ms3732 KiB
20Accepted3/36ms3832 KiB
21Accepted3/36ms4084 KiB
22Accepted3/37ms4420 KiB
23Accepted3/36ms4376 KiB
24Accepted3/37ms4508 KiB
25Accepted2/27ms4812 KiB
26Accepted2/26ms4596 KiB