57842023-09-27 16:38:43KCsengeKövetkező permutáció (50 pont)cpp14Hibás válasz 24/507ms4720 KiB
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
/*
5
2 3 5 4 1
8
2 3 5 8 7 6 4 1
*/
int main()
{
    int n;
    cin>>n;
    vector<int> a(n);
    for(int i=0;i<n;i++)
        cin>>a.at(i);

    vector<int> vege;

    int index=n-1;

    while(a.at(index-1)>a.at(index))
    {
        vege.push_back(a.at(index)); //a vektor vegerol levesszunka csokkeno reszt
        index--;
    }
    vege.push_back(a.at(index));
    /*
    for(int x:vege)
        cout<<x<<" ";

    cout<<"EEEEEEzt kell cserelni"<<a.at(index-1)<<endl;
    */
    for(int i=vege.size()-1;i>=0;i--)
    {
        if(vege.at(i)-1==a.at(index-1))
        {
            int temp=vege.at(i);
            vege.at(i)=a.at(index-1);
            a.at(index-1)=temp;
        }
    }
    /*
    cout<<a.at(index-1)<<" index"<<index;
    cout<<endl;
    cout<<"BEKA"<<endl;


    for(int x:vege)
        cout<<x<<" ";

        cout<<endl;
    for(int i=0;i<n;i++)
        cout<<a.at(i)<<" ";

    cout<<endl;
    */
    //szetvalogatok
    vector<int>kicsik, nagyok;
    for(int x:vege)
    {
        if(x>a.at(index-1))
            nagyok.push_back(x);
        else
            kicsik.push_back(x);
    }
    /*
    cout<<endl;
    for(int x:kicsik)
        cout<<x<<" ";
    cout<<endl;
    for(int x:nagyok)
        cout<<x<<" ";
    */

    int kicsiindex=kicsik.size()-1;
    //rendbe szedem a dolgokat
    for(int i=index;i<index+kicsik.size();i++)
    {
        a.at(i)=kicsik.at(kicsiindex);
        kicsiindex--;

    }
    
    int hol=0;
    for(int i=index+kicsik.size();i<n;i++)
    {
        a.at(i)=nagyok.at(hol);
        hol++;
    }

    for(int i=0;i<n;i++)
        cout<<a.at(i)<<" ";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base24/50
1Elfogadva0/03ms1816 KiB
2Hibás válasz0/04ms2024 KiB
3Hibás válasz0/12ms2212 KiB
4Hibás válasz0/13ms2428 KiB
5Hibás válasz0/13ms2676 KiB
6Elfogadva1/12ms2788 KiB
7Hibás válasz0/23ms2908 KiB
8Elfogadva2/22ms2996 KiB
9Elfogadva2/23ms3208 KiB
10Elfogadva2/23ms3316 KiB
11Hibás válasz0/12ms3404 KiB
12Hibás válasz0/13ms3648 KiB
13Hibás válasz0/12ms3732 KiB
14Hibás válasz0/12ms3728 KiB
15Elfogadva3/32ms3728 KiB
16Elfogadva3/32ms3724 KiB
17Hibás válasz0/33ms3976 KiB
18Hibás válasz0/33ms3872 KiB
19Elfogadva3/34ms3984 KiB
20Hibás válasz0/36ms3980 KiB
21Elfogadva3/36ms3988 KiB
22Hibás válasz0/36ms4060 KiB
23Elfogadva3/37ms4276 KiB
24Hibás válasz0/37ms4384 KiB
25Elfogadva2/27ms4720 KiB
26Hibás válasz0/26ms4376 KiB