Pagini recente » Cod sursa (job #1299835) | Cod sursa (job #3032904) | Cod sursa (job #2794763) | Cod sursa (job #2124103) | Cod sursa (job #418487)
Cod sursa(job #418487)
#include <cstdio>
#include <fstream>
using namespace std;
FILE *f,*g;
long n,k,p,a[30],i,aux,poz,maxi,j,x;
void perm(int k)
{
if(k==1) return;
else
{
for(i=1;i<=n;i++) fprintf(g,"%d ",a[i]);fprintf(g,"\n");
maxi=n;poz=k;
for(i=k;i<=n;i++)if ((a[i]<=maxi)&&(a[i]>a[k-1])){maxi=a[i];poz=i;}
aux=a[k-1];a[k-1]=a[poz];a[poz]=aux;sort(a+k,a+n+1);k=n;while(a[k-1]>a[k]) --k;
perm(k);
}
}
int main()
{
f=fopen("permutari.in","r");
g=fopen("permutari.out","w");
fscanf(f,"%ld%ld%ld",&n);
for(i=1;i<=n;i++) a[i]=i;
perm(n);
for(i=1;i<=n;i++) fprintf(g,"%ld ",a[i]);
return 0;
}