Pagini recente » Cod sursa (job #1972682) | Cod sursa (job #1916145) | Cod sursa (job #750788) | Cod sursa (job #893956) | Cod sursa (job #651468)
Cod sursa(job #651468)
#include <stdio.h>
long long aff=0;
int inline cauta(int v[128],int val,int l)
{
int i;
for(i=0; i<128; i++) if(v[i]==val) return 1;
return 0;
}
int ok(int n,int v[128])
{
int i;
for(i=0; i<n; i++) if(v[i]==0) return 0;
return 1;
}
int getindex(int n,int v[128]){
int i;
for(i=0;i<n;i++) if(v[i]==0) break;
return i;
}
int verifica(int v[128],int n,int val){
int i;
for(i=0;i<n;i++) if(v[i]==val) return 0;
return 1;
}
void permutari(int n,FILE *f,int v[128],int curent,int lc)
{
int i,k,c;
c=getindex(n,v);
if(c==n) return ;
for(i=1; i<=n; i++)
{
if(verifica(v,n,i))
{
v[c]=i;
permutari(n,f,v,0,0);
}
if(ok(n,v)) {
for(k=0;k<n;k++) fprintf(f,"%d ",v[k]);
fprintf(f,"\n");
}
if(!verifica(v,n,i))
{
v[c]=0;
}
}
}
long long fact(int n){
long long s=1,i;
for(i=1;i<=n;i++) s=s*i;
return s;
}
main()
{
int n;
FILE *in=fopen("permutari.in","r");
fscanf(in,"%d",&n);
FILE *f=fopen("permutari.out","w");
int v[128];
int i;
for(i=0; i<128; i++) v[i]=0;
permutari(n,f,v,0,0);
fclose(f);
}