Pagini recente » Cod sursa (job #1225015) | Cod sursa (job #1711800) | Cod sursa (job #2107409) | Cod sursa (job #1188061) | Cod sursa (job #2745487)
#include <fstream>
using namespace std;
ifstream fin ("combinari.in");
ofstream fout("combinari.out");
int n, k, m;
int x[20];
void afisare(){
for (int i = 1; i <= m; i++)
fout << x[i] << ' ';
fout << '\n';
}
bool ok (int k){
for (int i = 1; i < k; i++)
if (x[i] == x[k])
return false;
for (int i = 1; i <= k; i++)
if(x[i] < x[i-1])
return false;
return true;
}
void Back (int k){
for (int i = 1; i <= n; i++){
x[k] = i;
if (ok(k) == true){
if (k == m)
afisare();
else
Back(k + 1);
}
}
}
int main(){
fin >> n >> m;
Back(1);
return 0;
}
/*
Subprogram BACK(k)
Pentru fiecare element i din A[k] Execută
x[k] ← i
Dacă OK(k) Atunci
Dacă Solutie(k) Atunci
Afisare(k)
Altfel
BACK(k+1)
SfărșitDacă
SfărșitDacă
SfarșitPentru
SfârșitSubprogram
*/