Pagini recente » Cod sursa (job #2883522) | Cod sursa (job #2605986) | Cod sursa (job #808781) | Cod sursa (job #2603955) | Cod sursa (job #1808822)
#include <stdio.h>
#include <stdbool.h>
int n,sol[8];
FILE *fin,*fout;
inline bool succesor(int k)
{
if(sol[k]<n)
{
sol[k]++;
return true;
}
return false;
}
inline bool valid(int k)
{
int i;
for(i=0;i<k;i++)
if(sol[i]==sol[k])
return false;
return true;
}
inline void write()
{
int i;
for(i=0;i<n;i++)
fprintf(fout,"%d ",sol[i]);
fputc('\n',fout);
}
void back(int k)
{
if(k==n)
write();
else
{
sol[k]=0;
while(succesor(k))
if(valid(k))
back(k+1);
}
}
int main()
{
fin=fopen("permutari.in","r");
fout=fopen("permutari.out","w");
fscanf(fin,"%d",&n);
back(0);
fclose(fin);
fclose(fout);
return 0;
}