Cod sursa(job #252439)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 4 februarie 2009 14:22:18
Problema Dusman Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <stdio.h>   
  
  
int v[1000], used[1000], n,x[1000][1000],a,b,p,m,s[1000];   
  
void bkt(int k)   
{   
    if (p==0) return;
    else
    if(k>n)   
    {   
        for(int i = 1; i <= n; ++i)   
        {   
            s[i]=v[i];
            //printf("%d ", v[i]);   
        }   
        //printf("\n"); 
        p--;  
        //if (p==0) return;
    }   
    else  
    {   
        for(int i = 1; i <= n; ++i)   
        {   
            if(!used[i] && !x[v[k-1]][i])   
            {   
                v[k]=i;   
                used[i]=1;   
                bkt(k+1);   
                used[i]=0;   
            }   
        }   
    }   
}   
  
  
int main()   
{   
    freopen("dusman.in", "r", stdin);   
    freopen("dusman.out", "w", stdout);   
  
    scanf("%d %d %d", &n,&p,&m);
    for (int i=1;i<=m;++i)
   {
        scanf("%d %d",&a,&b);
        x[a][b]=1;
   }   
  
    bkt(1);   
    for(int i = 1; i <= n; ++i)
        {
            printf("%d ", s[i]);
        }
        printf("\n");
  
    return 0;   
}