Pagini recente » Cod sursa (job #1762176) | Cod sursa (job #19803) | Cod sursa (job #2093357) | Cod sursa (job #896555) | Cod sursa (job #959732)
Cod sursa(job #959732)
#include <cstdio>
using namespace std;
int main (){
freopen ("combinari.in", "r", stdin);
freopen ("combinari.out", "w", stdout);
int N, K, bin, lim, j, k, i, l;
scanf ("%d%d", &N, &K);
bin = (1 << K) - 1 + (1 << N);
lim = (1 << N + 1) - (1 << N - K);
while (bin < lim) {
for (i = 0; i < N; ++i)
if (bin >> i & 1)
printf ("%d ", i + 1);
printf ("\n");
l = (bin ^ bin & (bin - 1)) - 1;
bin += l;
j = (1 << N + 1) - 1 - bin;
k = j ^ j & (j - 1);
bin += (k >> 1) - l;
}
for (i = 0; i < N; ++i)
if (bin >> i & 1)
printf ("%d ", i + 1);
}