Cod sursa(job #2665507)
| Utilizator | Data | 30 octombrie 2020 22:59:30 | |
|---|---|---|---|
| Problema | Combinari | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <fstream>
using namespace std;
ifstream f("combinari.in");
ofstream g("combinari.out");
int n, x[20], p;
void afisare()
{
for(int i = 1; i <= p; i++)
g << x[i] << ' ';
g << '\n';
}
bool valid(int k)
{
if(x[k - 1] >= x[k]) return false;
return true;
}
void backt(int k)
{
for(int i = x[k - 1] + 1; i <= n; i++)
{
x[k] = i;
if(valid(k))
{
if(k == p) afisare();
else backt(k + 1);
}
}
}
int main()
{
f >> n >> p;
backt(1);
return 0;
}