Cod sursa(job #1046461)

Utilizator BuseSorinFMI Buse Sorin-Marian BuseSorin Data 2 decembrie 2013 22:26:37
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream>
using namespace std;

void backtrack(int, int);
ofstream cout("combinari.out");
int main(){
	int n, k;
	ifstream f("combinari.in");
	f >> n >> k;
	backtrack(n,k);
	return 0;
}

bool eValid(int V[], int n, int i){
	if (i > 1){
		if (V[i] <= V[i - 1]){
			return false;
		}
	}
	return true;
}

void backtrack(int n, int k){
	int V[20];
	int i = 1;
	V[i] = 0;
	bool valid = false;
	while (i > 0){
		valid = false;
		while (V[i] < n && !valid){
			V[i]++;
			valid = eValid(V, n, i);
		}
		if (valid){
			if (i == k){
				for (int l = 1; l <= k; l++){
					cout << V[l] << " ";
				}
				cout << '\n';
			}
			else{
				i++;
				V[i] = 0;
			}
		}
		else{
			i--;
		}

	}
}