Pagini recente » Istoria paginii template/fmi-no-stress-4/footer | Cod sursa (job #820133)
Cod sursa(job #820133)
#include <stdio.h>
//generarea permutarilor in ordine lexicografica
FILE *fin,*fout;
int p[100],n,i,k,poz,min,j;
int main()
{
fin=fopen("perm.in","r");
fout=fopen("perm.out","w");
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
p[i]=i;
do
{
poz=n;
while((p[poz]<p[poz-1]) && (poz>1))
poz--;
if(poz)
{
min=p[poz+1]; j=poz+1;
for(i=poz+1;i<=n;i++)
if(min>p[i] && p[i]>p[poz])
{
min=p[i];
j=i;
}
k=p[poz];p[poz]=p[j];p[j]=k;
for(i=1;i<=(n-poz)/2;i++)
{
k=p[poz+i];
p[poz+i]=p[n-i+1];
p[n-i+1]=k;
for(i=1;i<=n;i++)
{
fprintf(fout,"%d ",p[i]);
}
fprintf(fout,"\n");
}
}
}while(poz);
fclose(fout);
return 0;
}