Pagini recente » Cod sursa (job #2154318) | Cod sursa (job #3125809) | Cod sursa (job #781434) | Cod sursa (job #1470770) | Cod sursa (job #1526203)
#include <cstdio>
#include <cstring>
using namespace std;
class backtracking {
public:
backtracking(int ceva);
private:
int st[105];
int n;
void tipar(void);
bool valid(int k);
void back(int k);
};
backtracking :: backtracking(int ceva) {
n=ceva;
back(1);
};
void backtracking::tipar(void) {
for (int j = 1;j <= n;j++)
printf("%d ", st[j]);
printf("\n");
}
bool backtracking::valid(int k) {
int j;
for (j = 1;j < k;j++)
if (st[k] == st[j])
return 0;
return 1;
}
void backtracking::back(int k)
{
int i;
for (int i = 1;i <= n;i++) {
st[k] = i;
if (valid(k))
if (k == n)
tipar();
else
back(k + 1);
}
}
int main() {
freopen("permutari.in", "r", stdin);
freopen("permutari.out", "w", stdout);
int r;
scanf("%d",&r);
backtracking permutari(r);
}