Pagini recente » Cod sursa (job #3212285) | Cod sursa (job #1004973) | Cod sursa (job #33257) | Cod sursa (job #2902924) | Cod sursa (job #953488)
Cod sursa(job #953488)
#include<fstream>
using namespace std;
int a[20], n, k, aux;
ifstream fin("combinari.in");
ofstream fout("combinari.out");
int valid(int p)
{
int i, j;
for(i = 1; i <= p; i++)
for(j = i + 1; j <= p; j++)
if(a[i] >= a[j])
return 0;
return 1;
}
void afis()
{
int i;
for(i = 1; i <= k; i++)
fout << a[i] << " ";
fout << endl;
}
void back()
{
int p = 1; // p = pozitia din cele k elemente pe care vom incerca sa punem urmatorul numar
while(p > 0)
{
if(p == k + 1)
{
afis();
p--;
}
else
{
if(a[p] == n)
{
a[p] = 0;
p--;
}
else
{
a[p]++;
if(valid(p))
{
aux = a[p];
a[++p] = aux; // urmatorul element va incepe sigur de la numarul curent + 1 (combinarile vor fi in ord. cresc)
}
}
}
}
}
int main()
{
fin >> n >> k;
back();
return 0;
}