Cod sursa(job #393055)

Utilizator preda_alexandruPreda Alexandru preda_alexandru Data 8 februarie 2010 20:14:26
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<fstream.h>

int v[20],n,k,j;

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

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

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

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

void bkt()
{
int i=1;
v[i]=0;
while(i){
	if(succesor(i)){
		       if(valid(i))if(i==k)tipar();
				   else {
					i++;
					v[i]=v[i-1];
					}
		       }
	else i--;
	}
}

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