Pagini recente » Cod sursa (job #2141030) | Cod sursa (job #1041683) | Cod sursa (job #534679) | Cod sursa (job #340280) | Cod sursa (job #2419203)
#include <iostream>
#include <algorithm>
FILE * fin= fopen("permutari.in","r");
FILE * fout=fopen("permutari.out","w");
int n;
int v[10];
struct Comp: std::binary_function<int,int,bool>
{
bool operator() (int i1, int i2)
{
return i1<i2;
}
};
void write()
{
for(int i=1;i<=n;i++)
fprintf(fout,"%d ",v[i]);
fprintf(fout,"\n");
// for(int i=1;i<=n;i++)
// printf("%d ",v[i]);
// printf("\n");
}
int main()
{
fscanf(fin,"%d",&n);
bool ok =true;
for(int i=1;i<=n;i++)
v[i]=i;
write();
while(ok)
{
int i=n-1;
ok=false;
for(;i>=1;i--)
{
if(v[i+1]>v[i])
{
int minn=i+1;
for(int j= i+1;j<=n;j++)
if(v[j]< v[minn] && v[j]>v[i])
minn=j;
std::swap(v[minn],v[i]);
ok=true;
break;
}
}
if(ok)
{
std::sort(v+i+1,v+n+1,Comp());
write();
}
}
}