57842023-09-27 16:38:43KCsengeKövetkező permutáció (50 pont)cpp14Wrong answer 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;
}
SubtaskSumTestVerdictTimeMemory
base24/50
1Accepted0/03ms1816 KiB
2Wrong answer0/04ms2024 KiB
3Wrong answer0/12ms2212 KiB
4Wrong answer0/13ms2428 KiB
5Wrong answer0/13ms2676 KiB
6Accepted1/12ms2788 KiB
7Wrong answer0/23ms2908 KiB
8Accepted2/22ms2996 KiB
9Accepted2/23ms3208 KiB
10Accepted2/23ms3316 KiB
11Wrong answer0/12ms3404 KiB
12Wrong answer0/13ms3648 KiB
13Wrong answer0/12ms3732 KiB
14Wrong answer0/12ms3728 KiB
15Accepted3/32ms3728 KiB
16Accepted3/32ms3724 KiB
17Wrong answer0/33ms3976 KiB
18Wrong answer0/33ms3872 KiB
19Accepted3/34ms3984 KiB
20Wrong answer0/36ms3980 KiB
21Accepted3/36ms3988 KiB
22Wrong answer0/36ms4060 KiB
23Accepted3/37ms4276 KiB
24Wrong answer0/37ms4384 KiB
25Accepted2/27ms4720 KiB
26Wrong answer0/26ms4376 KiB