Cod sursa(job #1199403)

Utilizator hrazvanHarsan Razvan hrazvan Data 19 iunie 2014 13:39:35
Problema Combinari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.79 kb
#include <stdio.h>
#define MAXN 18
FILE *out;
int n, m, ap[ MAXN ];

void bkt( int nr, int k ){
    int i;
    if ( nr == n || k == 0 ){
        int ad = 0;
        for ( i = 0; i < MAXN; i++ )    ad += ap[ i ];
        if ( ad == m ){
            for ( i = 0; i < MAXN; i++ ){
                if ( ap[ i ] )  fprintf ( out, "%d ", i + 1 );
            }
            fprintf ( out, "\n" );
        }
    }
    else{
        for ( i = nr; i < n; i++ ){
            ap[ i ] = 1;
            bkt ( i + 1, k - 1 );
            ap[ i ] = 0;
        }
    }
    return ;
}

int main()
{
    FILE *in = fopen ( "combinari.in", "r" );
    fscanf ( in, "%d%d", &n, &m );
    fclose ( in );
    out = fopen ( "combinari.out", "w" );
    bkt( 0, m );
    fclose ( out );
    return 0;
}