Cod sursa(job #2217719)

Utilizator PinkiePie1189Preoteasa Mircea-Costin PinkiePie1189 Data 1 iulie 2018 17:44:08
Problema Submultimi Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.92 kb
#include<stdio.h>
#define MAXN 16

void bkt(int level); ///BackTracking solution
void bit_op(); ///BitWise solution

int sol[MAXN+1];
int N;
FILE*fin,*fout;
int main()
{
    fin=fopen("submultimi.in","r");
    fout=fopen("submultimi.out","w");

    fscanf(fin,"%d",&N);
    ///bkt(1);
    bit_op();

}

void bkt(int level)
{
    if(level>1 && level<=N+1)
    {
        for(int i=1;i<=level-1;i++)
        {
            fprintf(fout,"%d ",sol[i]);
        }
        fprintf(fout,"\n");
    }
    int i;
    for(i=sol[level-1]+1;i<=N;i++)
    {
        sol[level]=i;
        bkt(level+1);
    }
}

void bit_op()
{
    int mask=(1<<N)-1;
    for(int i=1;i<=mask;i++)
    {
        int ci=i;
        for(int j=1;j<=N;j++)
        {
            if(ci%2==1)
            {
                fprintf(fout,"%d ",j);
            }
            ci/=2;
        }
        fprintf(fout,"\n");
    }
}