Cod sursa(job #1973509)

Utilizator nicolaefilatNicolae Filat nicolaefilat Data 25 aprilie 2017 11:18:49
Problema Combinari Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb

#include <iostream>
#include <fstream>

using namespace std;

ifstream in("combinari.in");
ofstream out("combinari.out");
//COMBINARI

long long int n, m,v[20]; // 1 => n numere pentru care se genereaza combinari, m = cate sunt grupate , v = vectorul in care se construieste solutia

void afisare(int k) {
	for (int i = 1; i <= m; i++) {
		out << v[i] << "  ";
	}
}
int solutie(int k) {
	if (k == m) {
        for(int i = 0 ; i <= k; i ++){
            for(int j = i+1; j<= k; j++){
                if(v[i] > v[j] ){
                    return 0 ;
                }
            }
        }
		return 1;
	}
	return 0;
}
int validare(int k) {
	for (int i = 0; i <= k - 1; i++) {
		if (v[i] == v[k]) {
			return 0;
		}
	}
	return 1;
}


void BK(int k) {

	for (int i = 1; i <= n; i++) {
		v[k] = i;
		if (validare(k)) {
			if (solutie(k)) {
				out << "\n";
				afisare(k);
			}
			else {
				BK(k + 1);
			}

		}
	}
}

int main()
{
	in >> n >> m;
	BK(1);




	return 0;
}