Cod sursa(job #352806)

Utilizator preda_alexandruPreda Alexandru preda_alexandru Data 3 octombrie 2009 14:44:28
Problema Combinari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<fstream.h>

int v[20],n,k;

ifstream fin("combinari.in");
ofstream fout("combinari.out");

void init(int i)
{
v[i]=0;
}

int succesor(int i)
{
if(v[i]<n){
	  v[i]=v[i]+1;
	  return 1;
	  }
return 0;
}

int valid(int i)
{
for(int j=1;j<i;j++)if(v[j]>=v[i])return 0;
return 1;
}

int solutie(int i)
{
if(i==k)return 1;
return 0;
}

void tipar()
{
for(int j=1;j<=k;j++)fout<<v[j]<<" ";
fout<<"\n";
}

void bkt()
{
int i=1;
init(i);
while(i){
	if(succesor(i)){
		       if(valid(i))if(solutie(i))tipar();
				   else {
					i++;
					init(i);
					}
		       }
	else i--;
	}
}

int main()
{
fin>>n>>k;
bkt();
fin.close();
fout.close();
return 0;
}