Pagini recente » Cod sursa (job #352648) | Diferente pentru documentatie/textile intre reviziile 87 si 86 | Cod sursa (job #201157) | Cod sursa (job #1710064) | Cod sursa (job #662279)
Cod sursa(job #662279)
#include<fstream>
#include<iostream>
#include<cstring>
#define lmax 20
using namespace std;
ifstream f("combinari.in",fstream::in);
ofstream g("combinari.out",fstream::out);
typedef short int stiva[lmax];
stiva st;
short int n,k,i,as,ev,m;
void init()
{if(k==1)
st[k]=0;
else
st[k]=st[k-1];
}
int succesor()
{if(st[k]<n-m+k)
{ st[k]+=1;
return 1;
}
return 0;
}
int valid()
{short int i;
for(i=1;i<k;i++)
if(st[i]==st[k])
return 0;
return 1;
}
int solutie()
{return (k==m);}
void tipar()
{short int i;
for(i=1;i<=m;i++)
g<<st[i]<<" ";
g<<"\n";
}
void bt()
{k=1;init();
while(k)
{as=1;ev=0;
while(as && !ev)
{as=succesor();
if(as)
ev=valid();
}
if(as)
if(solutie())
tipar();
else
++k,init();
else
k--;
}
}
int main()
{f>>n>>m;
bt();
f.close();
g.close();
return 0;
}