52932023-04-25 15:47:53AblablablaKövetkező permutáció (50 pont)cpp17Elfogadva 50/504ms4900 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);


    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ÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/03ms2100 KiB
2Elfogadva0/04ms2360 KiB
3Elfogadva1/13ms2424 KiB
4Elfogadva1/13ms2464 KiB
5Elfogadva1/13ms2676 KiB
6Elfogadva1/12ms2888 KiB
7Elfogadva2/23ms3172 KiB
8Elfogadva2/23ms3360 KiB
9Elfogadva2/23ms3704 KiB
10Elfogadva2/23ms3780 KiB
11Elfogadva1/13ms3804 KiB
12Elfogadva1/12ms3812 KiB
13Elfogadva1/13ms3848 KiB
14Elfogadva1/13ms3820 KiB
15Elfogadva3/33ms3916 KiB
16Elfogadva3/33ms3988 KiB
17Elfogadva3/33ms4008 KiB
18Elfogadva3/33ms4220 KiB
19Elfogadva3/34ms4024 KiB
20Elfogadva3/34ms4160 KiB
21Elfogadva3/34ms4176 KiB
22Elfogadva3/34ms4288 KiB
23Elfogadva3/34ms4144 KiB
24Elfogadva3/34ms4392 KiB
25Elfogadva2/24ms4900 KiB
26Elfogadva2/24ms4628 KiB