Cod sursa(job #229344)

Utilizator mihaipoascaPoasca Mihai mihaipoasca Data 9 decembrie 2008 22:16:01
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>

FILE *fin=fopen("dusman.in","r"),
    *fout=fopen("dusman.out","w");

int N,M,K,d[1005][1005],x[1005];
char uz[1005];

void afis(){
    for(int i=1;i<=N;i++)
        fprintf(fout,"%d ",x[i]);
    fprintf(fout,"\n");
}

void bkt(int k){
    if(K<0) return;
    if(k==N+1){
        --K;
        if(K==0)
            afis();
    }
    else{
        for(int i=1;i<=N;i++)
            if(uz[i]==0&&d[i][x[k-1]]==0){
                uz[i]=1;
                x[k]=i;
                bkt(k+1);
                uz[i]=0;
            }
    }
}

int main(){
    fscanf(fin,"%d %d %d",&N,&K,&M);
    for(int i=1;i<=M;i++){
        int a,b;
        fscanf(fin,"%d %d",&a,&b);
        d[a][b]=d[b][a]=1;
    }


    bkt(1);
    fclose(fin);
    fclose(fout);
    return 0;
}