Cod sursa(job #874874)
#include <fstream>
using namespace std;
ifstream fin("combinari.in");
ofstream fout("combinari.out");
int v[20],aj[20],j,k,n,viz[20],h[20],ok;
int back(int sol[20],int pos)
{int i;
if(pos==k+1)
{if(ok==0)
{
for(i=1;i<=k;i++)
fout<<sol[i]<<' ';
fout<<'\n';
if(sol[1]==h[1] &&sol[k]==h[k]) ok=1;
}
}
else
{if(ok==0)
{
for(i=sol[pos-1];i<=n;i++)
if(viz[i]==0)
{viz[i]=1;
sol[pos]=i;
back(sol,pos+1);
viz[i]=0;
}
}
}
}
int main()
{fin>>n>>k;
for(j=k;j>=1;j--)
h[j]=n-(k-j);
back(v,0);
fin.close();
fout.close();
return 0;
}