Cod sursa(job #2215577)

Utilizator Y0da1NUME JMECHER Y0da1 Data 22 iunie 2018 17:46:10
Problema Combinari Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.25 kb
#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";

    }
}