You are on page 1of 1

#include <iostream>

using namespace std;

int n,x[100],k,p;
void prelsol()
{
for (int i=1;i<=p;i++)
cout<<x[i]<<" ";
cout<<endl;
}
int valid(int k)
{
for(int i=1;i<=k-1;i++)
if(x[i]==x[k])
return 0;
return 1;

}
void backt()
{

for(k=1;k<=n;k++)
x[k]=0;
k=1;
while(k)
if(k==n+1)
{
prelsol();
k=k-1;
}
else
if(x[k]<=n-1)
{
x[k]=x[k]+1;
if(valid(k))
k=k+1;
}

else
{
x[k]=0;
k=k-1;
}
}
int main()
{
cout<<"n=";
cin>>n;
cin>>p;
backt();
}

You might also like