Pagini recente » Cod sursa (job #1888644) | Cod sursa (job #2024533) | Cod sursa (job #1179518) | Cod sursa (job #354773) | Cod sursa (job #1283500)
#include <iostream>
#include <fstream>
#define R 1999999973
using namespace std;
fstream in("combinari.in",ios::in);
fstream out("combinari.out",ios::out);
int n,k,a[20]={};
int solutie(int x)
{
int p=1,i;
if(x==k+1)
return 1;
for(i=1;i<=k;i++)
{
if(a[i]==0)
p=0;
if(i==x)
i++;
if(a[i]==a[x])
p=0;
}
return p;
}
void afisare()
{
for(int i=1;i<=k;i++)
out<<a[i]<<" ";
out<<"\n";
}
int incrementabil(int x)
{
int i;
if(a[x]<n)
{
for(i=x+1;i<=k;i++)
if(a[x]+1==a[i])
return 0;
a[x]++;
return 1;
}
else
return 0;
}
int valid(int x)
{
int p=1,i;
for(i=1;i<x;i++)
if(a[i]==a[x])
p=0;
return p;
}
void back(int x)
{
if(solutie(x))
afisare();
else
{
while(incrementabil(x))
if(valid(x))
back(x+1);
}
}
int main()
{
in>>n>>k;
in.close();
back(1);
out.close();
return 0;
}