Está en la página 1de 1

#include <iostream>

using namespace std;

int n , x[100];

void afisare(int k){


for(int i = 1 ; i <= k ; i ++)
cout << x[i] << " ";
cout << endl;
}

bool OK(int k){


for(int i = 1 ; i < k ; i ++)
if(x[i] == x[k])
return 0;
return 1;
}

void back()
{
int k = 1;
x[1] = 0;
while(k > 0)
{
bool gasit = false;
do{
x[k] ++;
if(x[k] <= n && OK(k))
gasit = true;
}
while(! gasit && x[k ] <= n);
if(! gasit)
k --;
else
if(k < n)
{
k ++;
x[k] = 0;
}
else
afisare(k);

}
}

int main(){
cin >> n;
back();
return 0;
}

También podría gustarte