**Proszę o pomoc w poprawieniu kodu.
Mam wczytać liczbę X, a następnie liczby naturalne w kolejności rosnącej. Oznaczmy je jako k. I dla każdej liczby k program ma wypisać k-tą leksykograficznie permutację liczb 1,..,X. Jeśli podana liczba przekracza liczbę permutacji, program powienien zakończyć pracę.

Na razie napisałem tylko tyle i nie wiem, jak ruszyć dalej. W dodatku poniższy kod nie działa jak powinien. Proszę o wskazówki, bądź konkretne poprawienie programu. Czytałem w internecie, że mogę skorzystać z funkcji next_permutation, ale nie jestem, aż tak zaawansowany i niezbyt rozumiem kod tej funkcji.

Podrawiam:)


#include <iostream>

using namespace std;

int main()
{
    int N, k, i, j, m, t;
  
    cin >> m;

    i=m-1;
   

    int tab[i];
    while((i>0) && (tab[i-1] >= tab[i]))
       i--;

    if(i>0)
    {
               j=m;
               while((j>0) && (tab[j-1] )<= tab[i-1])
               {
                          j--;
               }
    }

    if(i>0 && j>0)
    {
               k=tab[i-1];
               tab[i-1]=tab[j-1];
               tab[j-1]=k;
    }

    for(i++, j=m; i<j; i++, j--)
    {
               k=tab[i-1];
               tab[i-1]=tab[i-j];
               tab[j - 1] = k;
    }


            }