Cod sursa(job #252206)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 3 februarie 2009 23:49:46
Problema Dusman Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <stdio.h>      
  
int n,st[1010],as,ev,m,p,a,b,c,d,e,f,i,x[1000][1000];   
     
void init(int k)   
{      
     st[k]=0;      
}      
  
int succ(int k)   
{      
    if(st[k]<n)   
      {   
            st[k]++;   
            return 1;   
      }      
    return 0;      
}      
  
int valid(int k)   
{      
    for (i=1;i<k;++i)
    if (st[k]==st[i] || (x[st[i]][st[i+1]]==1 || x[st[i+1]][st[i]]==1))
       return 0;
       return 1;
}      
  
int sol(int k)   
{      
    return k==n;      
}      
  
void tipar()   
{      
    for(i=1;i<=n;++i)      
    printf("%d ", st[i]);      
    printf("\n");   
       
}      
void back(int k)   
{      
    init(k);      
    while(succ(k))      
    {   
        if(valid(k))      
        if(sol(k))   
           p--;   
           //tipar();    
        else back(k+1);   
        if (p==0) break;   
    }   
}      
int main()   
{      
   freopen("dusman.in","r",stdin);   
   freopen("dusman.out","w",stdout);   
   scanf("%d %d %d",&n,&p,&m);   
   for (i=1;i<=m;++i)
   {scanf("%d %d",&a,&b);
   x[a][b]=1;
   }
   back(1);
   //for(i=1;i<=n;++i)   
   //printf("%d ", st[i]);   
   tipar();   
   return 0;      
}