Sunteți pe pagina 1din 1

#include <iostream>

using namespace std;


int s[20],n,k;
void init()
{ s[k]=0; }
int succesor()
{
if(s[k]<n)
{
s[k]=s[k]+1; return 1;
}
else return 0;
}
int valid()
{
for(int i=1;i<k;i++)
if(s[i]==s[k])return 0;
return 1;
}
int solutie()
{
return (k==n);
}
void tipar()
{
for(int i=1;i<=n;i++)
cout<<s[i]<<" ";
cout<<endl;
}
void back()
{
int as;k=1;init();
while(k>0)
{
do
{
as=succesor();
}while(as&& !valid());
if(as)
if(solutie())tipar();
else{k++;init();}
else{k--;
}
}}
int main()
{
cin>>n;
back();
return 0;
}