Pagini recente » Cod sursa (job #982732) | Cod sursa (job #2532395) | Cod sursa (job #1609281) | Cod sursa (job #1684120) | Cod sursa (job #1428513)
#include<fstream>
using namespace std;
ifstream f("combinari.in");
ofstream g("combinari.out");
int n,i,ev,as,k,st[20],m;
void init(int k,int st[])
{
st[k]=0;
}
void succesor(int k,int st[],int &as)
{
if(st[k]<n)
{
st[k]=st[k]+1;
as=1;
}
else as=0;
}
void valid(int k,int st[],int &ev)
{
int i;
ev=1;
for(i=1;i<k;i++)
{
if(st[k]==st[i]) ev=0;
}
if(k>1 && st[k]<st[k-1]) ev=0;
if(k>n) ev=0;
}
int solutie(int k)
{
if(k==m) return 1;
else return 0;
}
void tipar(int k)
{
int i;
for(i=1;i<=k;i++)
g<<st[i]<<" ";
g<<"\n";
}
void back(int k)
{
init(k,st);
while(k>0)
{
do
{
succesor(k,st,as);
if(as) valid(k,st,ev);
}while(as && !ev);
if(as)
{
if(solutie(k)) tipar(k);
else
{
k++;
init(k,st);
}
}
else k--;
}
}
int main()
{
f>>n>>m;
back(1);
return 0;
}