Cod sursa(job #1151102)

Utilizator ovidiuz98Zamfir Ovidiu ovidiuz98 Data 23 martie 2014 20:53:19
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>

using namespace std;
long int n,p[10],i,j,poz,gata,minim,aux;
int main()
{
    ifstream f("permutari.in");
    ofstream g("permutari.out");
    f>>n;f.close();
    for(i=1;i<=n;i++)
        p[i]=i,g<<i<<' ';g<<'\n';
    do
    {
     poz=n;
     while(p[poz]<p[poz-1] && poz>1) poz--;
     poz--;
     if(poz)
     {minim=p[poz+1];j=poz+1;
     for(i=poz+2;i<=n;i++)
            if(p[i]<minim && p[i]>p[poz]) minim=p[i],j=i;
     aux=p[poz];p[poz]=p[j];p[j]=aux;
     for(i=1;i<=(n-poz)/2;i++) aux=p[poz+i],p[poz+i]=p[n-i+1],p[n-i+1]=aux;
     for(i=1;i<=n;i++)
        g<<p[i]<<' ';
     g<<'\n';}
    }while(poz);
    g.close();
    return 0;
}