Pagini recente » Cod sursa (job #2680700) | Cod sursa (job #1608794) | Cod sursa (job #2898168) | Cod sursa (job #1426334) | Cod sursa (job #2630155)
#include<iostream>
#include<fstream>
using namespace std;
#define dimmax 100
ifstream f ("combinari.in");
ofstream g("combinari.out");
int s[dimmax] ;
int n, k, p, nr=0;
void init(){if(k==1) s[k]=0; else s[k]=s[k-1];}
int succesor()
{ if(s[k]<n-p+k) {s[k]++;return 1; } return 0;}
int valid(){ return 1;}
int solutie(){if (k==p) {nr++;return 1;} return 0;}
void afisare ( ){for( int i=1; i<=p; i++)g<<s[i]<<" ";g<<endl;}
void bkt( )
{int as, ev; k=1; init();while(k>0)
{as=1; ev=0; while(as&&!ev){as=succesor(); if(as!=0) ev=valid(); }
if(as!=0) if(solutie()) afisare();
else {k++; init(); }
else k--; } cout<<"nr="<<nr;
}int main ( )
{//cout<< "combinari de n=";
f>>n;
//cout<< "p<=n, luate cate p=";
f>>p; bkt( ); return 0;}