Pagini recente » Cod sursa (job #2281034) | Cod sursa (job #270302) | Cod sursa (job #2947092) | Cod sursa (job #3153584) | Cod sursa (job #856845)
Cod sursa(job #856845)
#include<stdio.h>
class Permutari {
int n, *x, k;
int min() {
return 1;
}
int max() {
return n;
}
bool continuare() {
for(int i=0; i<k; i++) {
if(x[k]==x[i]) {
return false;
}
}
return true;
}
bool solutie() {
return (k==n-1);
}
void afisare() {
for(int i=0; i<=k; i++) {
printf("%d ", x[i]);
}
printf("\n");
}
public:
void back() {
k=0;
x[0]=min()-1;
while(k>=0) {
x[k]++;
if(x[k]>max()) {
k--;
}
else {
if(continuare()) {
if(solutie()) {
afisare();
}
else {
x[++k]=min()-1;
}
}
}
}
}
Permutari(int n) {
this->n=n;
x=new int[n];
}
~Permutari() {
delete[] x;
}
};
int main(int argc, char **argv) {
freopen("permutari.in", "r", stdin);
freopen("permutari.out", "w", stdout);
int n;
scanf("%d", &n);
Permutari p(n);
p.back();
return 0;
}