Cod sursa(job #2305741)

Utilizator driver71528@gmail.comTerec Andrei-Sorin [email protected] Data 20 decembrie 2018 23:01:08
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
#include <iostream>
using namespace std;
ofstream g("permutari.out");
int x[9],n;

void next(int i,int j)
{
    if(i==j)
        return;
    int aux=x[i];
    x[i]=x[j];
    for(int k=j-1;k>=i;k--)
        x[k+1]=x[k];
    x[i+1]=aux;
}
void back(int i,int j)
{
    if(i==j)
        return;
    int aux=x[j];
    x[j]=x[i];
    for(int k=i+1;k<=j;k++)
        x[k-1]=x[k];
    x[j-1]=aux;
}


void sol(int i,int j)
{
    if(i==j)
    {
        for(int i=1;i<=n;i++)
            g<<x[i]<<' ';
        g<<'\n';
    }
    else
        for(int k=i;k<=j;k++)
        {
            next(i,k);
            sol(i+1,j);
            back(i,k);
        }
}

int main()
{
    ifstream f("permutari.in");
    f>>n;
    for(int i=1;i<=n;i++)
        x[i]=i;
    sol(1,n);
    g.close();
    f.close();
    return 0;
}