53792023-04-27 16:40:42TimiKövetkező permutáció (50 pont)cpp14Hibás válasz 0/5029ms4696 KiB
#include <iostream>
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    cin>>n;
    vector<int> a(n);
    for (int i=0; i<n; i++)
        cin>>a[i];
    int i, j;
    if (a[n-1]>a[n-2])

        swap(a[n-1], a[n-2]);
    else
    {
        i=n-2;
        while(a[i]>a[i+1])
           i--;
        j=n-1;
        while (a[i]>a[j])
        {
            j--;
        }
        swap(a[i], a[j]);

        vector<int> utolsok;
        for(int k=i+1; k<n; k++)
            utolsok.push_back(a[k]);
        sort(utolsok.begin(), utolsok.end());
        int hatar;
        for (int k=0; k<utolsok.size(); k++)
        {
            if (a[k]>a[i])
            {
                hatar=k;
                break;
            }
        }
        j=1;
        for (int k=hatar-1; k>=0; k--)
        {
            a[i+j]=utolsok[k];
            j++;
        }
        for (int k=hatar; k<utolsok.size(); k++)
                a[i+k+1]=utolsok[k];
    }
    for (int k=0; k<n; k++)
        cout<<a[k]<<" "<<endl;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/03ms1816 KiB
2Hibás válasz0/012ms2028 KiB
3Hibás válasz0/13ms2132 KiB
4Hibás válasz0/13ms2312 KiB
5Hibás válasz0/13ms2528 KiB
6Hibás válasz0/12ms2608 KiB
7Hibás válasz0/23ms2736 KiB
8Hibás válasz0/23ms2736 KiB
9Hibás válasz0/23ms2896 KiB
10Hibás válasz0/22ms2812 KiB
11Hibás válasz0/13ms2968 KiB
12Hibás válasz0/13ms2908 KiB
13Hibás válasz0/13ms3292 KiB
14Hibás válasz0/13ms3092 KiB
15Hibás válasz0/33ms3224 KiB
16Hibás válasz0/33ms3360 KiB
17Hibás válasz0/34ms3584 KiB
18Hibás válasz0/36ms3792 KiB
19Hibás válasz0/317ms4016 KiB
20Hibás válasz0/316ms4052 KiB
21Hibás válasz0/317ms4284 KiB
22Hibás válasz0/318ms4600 KiB
23Hibás válasz0/324ms4456 KiB
24Hibás válasz0/329ms4652 KiB
25Hibás válasz0/225ms4696 KiB
26Hibás válasz0/218ms4460 KiB