Pagini recente » Cod sursa (job #2463135) | Cod sursa (job #2141423) | Cod sursa (job #1985676) | Cod sursa (job #1088330) | Cod sursa (job #365779)
Cod sursa(job #365779)
//Sa se genereze toate permutarile multimii {1, 2, ...N}, in ordine lexicografica.
#include <cstdio>
using namespace std;
int uz[10], x[10] ,n;
FILE *fout=fopen("permutari.out","w");
void back(int k){
for(int i =1;i<=n;++i)
if(!uz[i]){
uz[i] = 1;
x[k]=i;
if(k==n){
for( int j=1;j<=n;++j)
fprintf(fout,"%d ",x[j]);
fprintf(fout,"\n");
}
else
back(k+1);
uz[i] = 0;
}
}
void back1(int k){
for(int i =1;i<=n;i++){
x[k]=i;
int ok=1;
for(int j=1 ; j<k && ok ; j++)
if(x[j] ==x[k])
ok=0;
if(ok)
if(k==n){
for(int j = 1;j<=n;j++)
fprintf(fout,"%d ",x[j]);
fprintf(fout,"\n");
}
else
back(k+1);
}
}
int main(){
FILE *fin = fopen("permutari.in","r");
fscanf(fin,"%d",&n);
fclose(fin);
back(1);
return 0;
}