Pagini recente » Cod sursa (job #2351548) | Cod sursa (job #2553088) | Cod sursa (job #1601400) | Cod sursa (job #1893918) | Cod sursa (job #1169238)
#include <fstream>
using namespace std;
ifstream is ("combinari.in");
ofstream os ("combinari.out");
int n, k;
int C[15];
void BACKTRACK(int i);
void Out();
bool Valid(int i);
int main()
{
is >> n >> k;
BACKTRACK(1);
is.close();
os.close();
return 0;
}
void BACKTRACK(int i)
{
bool Ok = 1;
if (i == k+1)
Out();
else
for (int j = 1; j <= n; ++j)
{
C[i] = j;
if (Valid(i)) BACKTRACK(i+1);
}
};
void Out()
{
for (int j = 1; j <= k; ++j) os << C[j] << ' ';
os << '\n';
};
bool Valid(int i)
{
for (int j = 1; j < i; ++j)
if (C[j] == C[i]) return 0;
for (int j = 1; j < i; ++j)
if (C[j] > C[j+1]) return 0;
return 1;
};