Pagini recente » Cod sursa (job #494919) | Cod sursa (job #2622536) | Cod sursa (job #2857319) | Cod sursa (job #2400394) | Cod sursa (job #145508)
Cod sursa(job #145508)
#include<stdio.h>
#define INPUT "permutari.in"
#define OUTPUT "permutari.out"
FILE *fin=fopen(INPUT, "r"),*fout=fopen(OUTPUT, "w");
int stiva[10],n,k;
inline void readValues(){fscanf(fin, "%d", &n);}
void solveFunction();
inline void init(){stiva[k]=0;}
int succesor();
int valid();
int solutie();
void printSolution();
int main(){
readValues();
solveFunction();
fclose(fin);
fclose(fout);
return 0;
}
void solveFunction(){
k=1;
init();
int as,ev,l=1;
while(k>=1){
l=1;
do{
as=succesor();
if(as) ev=valid();
if((as&&ev)||(!as))
l=0;
}while(l);
if(as){
if(solutie())
{
printSolution();
}
else{
++k;
init();
}
}
else
--k;
}
}
int succesor(){
if(stiva[k]<n)
{
++stiva[k];
return 1;
}
return 0;
}
int valid(){
for(int i=1;i<k;++i)
if(stiva[i]==stiva[k])
return 0;
return 1;
}
int solutie(){
if(k==n)
return 1;
return 0;
}
void printSolution(){
for(int i=1;i<=n;++i)
fprintf(fout, "%d ", stiva[i]);
fprintf(fout, "\n");
}