Cod sursa(job #1840760)

Utilizator facelessIonut Balauca faceless Data 4 ianuarie 2017 20:09:18
Problema Submultimi Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>
using namespace std;

int n,k,nr;
int sol[20],d[20];
void calc()
{
    int i;
    for(i=1;i<=n;i++)
        d[i]=1<<(n-i);
}
void rezolvare()
{
    int x=0,i;

    nr=0;
    for(i=1;i<=n && x<k;i++)
        if(x<k-d[i])
           x+=d[i];
        else
        {
            x++;
            sol[++nr]=i;
        }
}
int main()
{
    ifstream fin("submultimi.in");
    ofstream fout("submultimi.out");
    fin>>n;
    calc();
    int i,lim=1<<n;
    for(k=1;k<lim;k++)
    {
        rezolvare();
        for(i=1;i<=nr;i++)
            fout<<sol[i]<<" ";
        fout<<endl;
    }
    return 0;
}