Cod sursa(job #2436418)

Utilizator AlexAboAbogatoaie Alexandru AlexAbo Data 5 iulie 2019 17:53:35
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("permutari.in");
ofstream g("permutari.out");
const int N = 10;
int p[N],n;
bool urmatoareaPermutare();
int main()
{
    f >> n;
    for(int i=1;i<=n;i++)
        p[i]=i;
    do
    {
        for(int i=1;i<=n;i++)
            g<<p[i]<<' ';
        g<<'\n';
    }
    while(urmatoareaPermutare());
    return 0;
}
bool urmatoareaPermutare()
{
    int i=n,j=n;
    while(i>0&&p[i]<p[i-1])i--;
    if(i==1)
        return false;
    while(p[j]<p[i-1])j--;
    swap(p[j],p[i-1]);
    for(j=n;j>i;i++,j--)
        swap(p[i],p[j]);
    return true;
}