Pagini recente » Cod sursa (job #1218245) | Cod sursa (job #689248) | Cod sursa (job #55726) | Cod sursa (job #2438253) | Cod sursa (job #2215577)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int n, k;
int a, b, i;
ifstream in ("combinari.in");
ofstream out ("combinari.out");
//cout<<"\"Wellcome\" to COMBINARI FOLOSIND BACK PE BITI 100% ne-ciordit de pe infoarena! Introdu' n si k (ca si comb de n luate cate k:)\n";
//cout<<"N: ";
in>>n;
//cout<<"K: ";
in>>k;
/*if(n > 10)
{
cout<<"BA AI UITAT CA BACK E LENT?!?\n";
return 0;
}
if(k > n)
{
cout<<"BA NU MAI INTRODU ABERATII!!!\n";
return 0;
}*/
///avem nevoie de n biti
b = 1<<n;
int cnt;
for(a = 0; a < b; ++a)
{
cnt = 0;
for(int i = 1; i < b; i*=2)
if(a & i)
++cnt;
if(cnt != k)
continue;
/*cout<<a<<" ";
///afiseaza reprezentarea binara a lu' a
for(int i = 1; i < b; i*=2)
if(a & i)
cout<<'1';
else
cout<<'0';
cout<<" ";*/
///afiseaza care bit ii unu (ce 'elemente' am ales)
for(int i = 0; i < n; ++i)
if(a & (1<<i))
out<<i + 1<<" ";
out<<"\n";
}
}