Pagini recente » Cod sursa (job #1349304) | Cod sursa (job #903478) | Cod sursa (job #887384) | Cod sursa (job #362592) | Cod sursa (job #232529)
Cod sursa(job #232529)
#include<stdio.h>
int n,k,i;
char *stiva;
FILE *pout;
void init()
{stiva[k]=0;}
bool Am_Succesor()
{
if(stiva[k]<n)
{stiva[k]++;
return 1;}
return 0;
}
bool E_Valid()
{
for(i=1;i<k;i++)
if(stiva[i]==stiva[k])
return 0;
return 1;
}
bool Solutie()
{return k==n;}
void Tipar()
{
for(i=1;i<=n;i++)
fprintf(pout,"%d ",stiva[i]);
fprintf(pout,"\n");
}
void back()
{
k=1;
bool AS;
init();
while(k>=1)
{
do {} while((AS=Am_Succesor()) && !E_Valid());
if(AS)
if(Solutie()) Tipar();
else {k++; init();}
else k--;
}
}
int main()
{
FILE *pin=fopen("permutari.in","r");
fscanf(pin,"%d",&n);
fclose(pin);
stiva=new char[n+1];
pout=fopen("permutari.out","w");
back();
fclose(pout);
delete []stiva;
return 0;
}