Cod sursa(job #657286)

Utilizator AndreeaNNedelcu Andreea AndreeaN Data 6 ianuarie 2012 12:13:16
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>
FILE *f=fopen("dusman.in","r"),*g=fopen("dusman.out","w");
long int n,k,m,v[1002],used[1002],a[1005][1005];

void citire(){
long int i,x,y;
    fscanf(f,"%ld %ld %ld\n",&n,&k,&m);
    for(i=1; i<=m; i++){
        fscanf(f,"%ld %ld\n",&x,&y);
        a[x][y]=1; a[y][x]=1;
    }
}

void back(long int p){
long int i;
    if(p<0){return;}
    if(p>n){
        //am sol
        k--;
        if(k==0){
            //gasesc perm
            for(i=1; i<=n; i++){
                fprintf(g,"%ld ",v[i]);
            }
            return ;
        }
    }
    else{
        for(i=1; i<=n; i++){
            if(used[i]==0 && a[v[p-1]][i]==0){
                used[i]=1;
                v[p]=i;
                back(p+1);
                used[i]=0;
            }
        }
    }
}
int main()
{
    citire();
    back(1);
    return 0;
}