Cod sursa(job #1133689)

Utilizator omerOmer Cerrahoglu omer Data 5 martie 2014 12:43:53
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include<stdio.h>
using namespace std;
FILE *f,*g;
short int a[9];
int N;
void next_permutation(void)
    {
        int i=N;
        while (a[i-1]>a[i]) i--;
        int j=i;
        while (a[i-1]<a[j]&&j<=N) j++;
        int aux;
        int k;
        for(k=i;k<=(i+N-1)/2;k++) {aux=a[k];a[k]=a[N+i-k];a[N+i-k]=aux;}
        aux=a[i-1];a[i-1]=a[N+i+1-j];a[N+i+1-j]=aux;
        for(k=1;k<=N;k++) fprintf(g,"%d ",a[k]);
        fprintf(g,"\n");
    }

int main()
{
    f=fopen("permutari.in","r");
    g=fopen("permutari.out","w");
    fscanf(f,"%d",&N);
    int q=1,l;
    for(l=2;l<=N;l++) {q*=l;a[l]=l;}
    a[1]=1;
    for(l=1;l<=N;l++) fprintf(g,"%d ",a[l]);
    fprintf(g,"\n");
    for(l=1;l<=q-1;l++) next_permutation();

    return 0;
}