Pagini recente » Cod sursa (job #759478) | Cod sursa (job #2507234) | Cod sursa (job #2206113) | Cod sursa (job #1975016) | Cod sursa (job #1973509)
#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;
}