Pagini recente » Profil linda | Cod sursa (job #1706468) | Cod sursa (job #954849) | Cod sursa (job #1296045) | Cod sursa (job #1921264)
#include <fstream>
#define NMAX 20
using namespace std;
ifstream f("combinari.in");
ofstream g("combinari.out");
int fr[NMAX], n, m, v[NMAX], i, level = 1;
bool ok;
void afisare()
{
for (i = 1; i <= m; ++ i)
g << v[i] << " ";
g << '\n';
}
bool check()
{
for (i = 1; i <= n; ++ i)
fr[i] = 0;
for (i = 1; i <= n; ++ i)
{
fr[v[i]] ++;
if (fr[v[i]] > 1)
return 0;
}
return 1;
}
void backtracking()
{
while (level)
{
ok = 0;
while (v[level] < n && !ok)
{
v[level] ++;
ok = check;
}
if (!ok)
level --;
else
if (ok && level == m)
afisare();
else
if (ok)
v[++ level] = v[level - 1];
}
}
int main()
{
f >> n >> m;
backtracking();
return 0;
}