Pagini recente » Rating itm iacob cristian (iacobcristian1) | Istoria paginii runda/sim0003/clasament | Cod sursa (job #2073117) | Cod sursa (job #1216871) | Cod sursa (job #1974479)
#include<fstream>
using namespace std;
ifstream f ("permutari.in");
ofstream g ("permutari.out");
int stack[100],
n;
void bt(int);
void init(int);
int successor(int);
int valid(int);
int solution(int);
void print();
int main() {
f>>n;
bt(1);
return(0);
};
void bt(int level) {
init(level);
while(successor(level))
if(valid(level))
if(solution(level)) print();
else bt(level+1);
};
void init(int level) {
stack[ level ] = 0;
};
int successor(int level) {
if(stack[level] < n) {
stack[level] = stack[level] + 1;
return 1;
} else {
return 0;
}
};
int valid(int level) {
int i;
for(i = 1; i < level; i++) {
if(stack[i] == stack[level]) return 0;
}
return 1;
};
int solution(int level) {
return level == n;
};
void print() {
int i;
for(i = 1; i <= n; i++) g<<stack[i]<<" ";
printf("\n");
};