Pagini recente » Cod sursa (job #2103882) | Cod sursa (job #1727979) | Cod sursa (job #2004654) | Cod sursa (job #218087) | Cod sursa (job #1133689)
#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;
}