Pagini recente » Cod sursa (job #534471) | Diferente pentru home intre reviziile 217 si 218 | Cod sursa (job #558766) | Monitorul de evaluare | Cod sursa (job #1499864)
#include <cstdio>
using namespace std;
int n,p,x[20];
int bun(int k)
{
int i,j;
for(i=1;i<k;i++)
if(x[i]>x[i+1])return 0;
for(i=1;i<k;i++)
for(j=i+1;j<=k;j++)
if(x[j]==x[i])return 0;
return 1;
}
void back(int k)
{
int i;
if(k>p)
{
for(i=1;i<=p;i++)
printf("%d ",x[i]);
printf("\n");
return;
}
else
{
for(i=1;i<=n;i++)
{
x[k]=i;
if(bun(k))back(k+1);
}
}
}
int main()
{
freopen("combinari.in","r",stdin);
freopen("combinari.out","w",stdout);
scanf("%d%d",&n,&p);
back(1);
return 0;
}