Pagini recente » Cod sursa (job #1585794) | Cod sursa (job #152253) | Cod sursa (job #637279) | Cod sursa (job #2217330) | Cod sursa (job #1728402)
#include <cstdio>
#include <iostream>
#include <limits>
using namespace std;
int main()
{ int v[100];
int n;
FILE *f=fopen("permutari.in","r"),*g=fopen("permutari.out","w");
fscanf(f,"%d",&n);
for(int i=1;i<=n;i++)
{
v[i]=i; fprintf(g,"%d ",v[i]);
}
fprintf(g,"\n");
int i;
int ok=0;
int k;
int vv[100];
int j;
int minim=INT_MAX;
int imin;
while (ok==0)
{
for(i=n;i>1;i--)
{
if(v[i]>v[i-1]) break;
}
if(i==1) break;
k=i;
k--;
minim=INT_MAX;
for(j=k;j<=n;j++)
{if(v[j]>v[k]) minim=min(v[j],minim);
}
for(i=1;i<=n;i++)
{ if(v[i]==minim) imin=i;
}
int aux;
aux=v[k];
v[k]=v[imin];
v[imin]=aux;
j=1;
for(i=n;i>=k+1;i--)
{
vv[j++]=v[i];
}
j=1;
for(i=k+1;i<=n;i++)
{
v[i]=vv[j++];
}
for(i=1;i<=n;i++)
fprintf(g,"%d ",v[i]);
fprintf(g,"\n");
}
return 0;
}