Cod sursa(job #2630155)

Utilizator marianaivan2000marianaivan marianaivan2000 Data 24 iunie 2020 15:23:08
Problema Combinari Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#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;}