5784 2023. 09. 27 16:38:43 KCsenge Következő permutáció (50 pont) cpp14 Hibás válasz 24/50 7ms 4720 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 Összpont Teszt Verdikt Idő Memória
base 24/50
1 Elfogadva 0/0 3ms 1816 KiB
2 Hibás válasz 0/0 4ms 2024 KiB
3 Hibás válasz 0/1 2ms 2212 KiB
4 Hibás válasz 0/1 3ms 2428 KiB
5 Hibás válasz 0/1 3ms 2676 KiB
6 Elfogadva 1/1 2ms 2788 KiB
7 Hibás válasz 0/2 3ms 2908 KiB
8 Elfogadva 2/2 2ms 2996 KiB
9 Elfogadva 2/2 3ms 3208 KiB
10 Elfogadva 2/2 3ms 3316 KiB
11 Hibás válasz 0/1 2ms 3404 KiB
12 Hibás válasz 0/1 3ms 3648 KiB
13 Hibás válasz 0/1 2ms 3732 KiB
14 Hibás válasz 0/1 2ms 3728 KiB
15 Elfogadva 3/3 2ms 3728 KiB
16 Elfogadva 3/3 2ms 3724 KiB
17 Hibás válasz 0/3 3ms 3976 KiB
18 Hibás válasz 0/3 3ms 3872 KiB
19 Elfogadva 3/3 4ms 3984 KiB
20 Hibás válasz 0/3 6ms 3980 KiB
21 Elfogadva 3/3 6ms 3988 KiB
22 Hibás válasz 0/3 6ms 4060 KiB
23 Elfogadva 3/3 7ms 4276 KiB
24 Hibás válasz 0/3 7ms 4384 KiB
25 Elfogadva 2/2 7ms 4720 KiB
26 Hibás válasz 0/2 6ms 4376 KiB