Cod sursa(job #1424301)

Utilizator TeodorescuStefanEduardTeodorescu Stefan Eduard TeodorescuStefanEduard Data 23 aprilie 2015 21:24:28
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;

fstream in("file.in",ios::in);
fstream out("file.out",ios::out);

int n,k,sfn,sfk,a[100]={};

void tipar();
int sol(int);
int succesor(int);
int valid(int);
void back(int);

int main()
{
	in>>n>>k;
	sfn=n;
	sfk=k;

	back(1);

	return 0;
}

void tipar()
{
	for(int i=1;i<=k;i++)
		out<<a[i]<<" ";
	out<<"\n";
}

int sol(int x)
{
	if(x>=sfn)
		return 1;
	return 0;
}

int succesor(int x)
{
	if(a[x]<sfn)
	{
		a[x]++;
		return 1;
	}
	return 0;
}

int valid(int x)
{
	for(int i=1;i<x;i++)
		if(a[i]==a[x])
			return 0;
	return 1;
}

void back(int x)
{
	if(sol(x)==1)
		tipar();
	else
	{
		while(succesor(x))
			if(valid(x))
				back(x+1);
		sfn--;
		sfk--;
	}
}