Pagini recente » Cod sursa (job #770970) | Cod sursa (job #2703964) | Cod sursa (job #2279031) | Cod sursa (job #1922947) | Cod sursa (job #365909)
Cod sursa(job #365909)
#include<stdio.h>
int x[10],k,n,as,ev;
FILE*g=fopen("permutari.out","w");
void init();
void succesor();
void eval();
int solutie();
void tipar();
int main()
{
FILE*f=fopen("permutari.in","r");
fscanf(f,"%d",&n);
fclose(f);
k=0;
init();
while(k>=0)
{
do
{
succesor();
if(as)eval();
}while(!(!as||as&&ev));
if(as)
{
if(solutie())tipar();
else {++k;init();}
}
else {--k;}
}
fclose(g);
return 0;
}
void init()
{
x[k]=0;
}
void succesor()
{
as=0;
if(x[k]<n)
{
as=1;
++x[k];
}
}
void eval()
{ ev=1;
for(int i=0;i<k&&ev;++i)
if(x[i]==x[k])ev=0;
}
int solutie()
{
return k==n-1;
}
void tipar()
{
for(int i=0;i<n;++i)
{
fprintf(g,"%d ",x[i]);
}
fprintf(g,"\n");
}