Cod sursa(job #1527821)

Utilizator pitbull007Hurmuzache Ciprian pitbull007 Data 18 noiembrie 2015 19:28:37
Problema Combinari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.74 kb
#include <stdio.h>
#include <stdlib.h>

FILE *fin, *fout;
int v[19],N,K;

int isValid(int pas) {
    int i;
    for(i=1;i<pas;i++) {
        if(v[i] == v[pas] || v[i] > v[pas]) {
            return 0;
        }
    }
    return 1;
}

void backtrack(int pas) {
    if(pas == K+1) {
        afisare();
    } else {
        int i;
        for(i=1;i<=N;i++) {
            v[pas] = i;
            if(isValid(pas)) {
                backtrack(pas+1);
            }
        }
    }
}

void afisare() {
    int i;
    for(i=1;i<=K;i++) {
        fprintf(fout,"%d ",v[i]);
    }
    fprintf(fout,"\n");
}


int main(void) {

    fin = fopen("combinari.in","r");
    fout = fopen("combinari.out","w");

    fscanf(fin,"%d%d",&N,&K);
    backtrack(1);

    return 0;
}