Cod sursa(job #191850)

Utilizator Darth_NiculusIvan Nicolae Darth_Niculus Data 29 mai 2008 09:18:01
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
/* Ivan Nicolae - Dusman - Infoarena */  
#include <stdio.h>   
#include <stdlib.h>   
  
#define NMAX 1001   
#define INPUT  "dusman.in"   
#define OUTPUT "dusman.out"   
  
int i,n,m,k,st[NMAX],A[NMAX][NMAX],Mark[NMAX];   
  
void Print(void)   
{   
 int i;   
 for (i=1;i<=n;i++)   
    printf("%d ",st[i]);   
 printf("\n");   
 fclose(stdin);   
 fclose(stdout);   
 exit(0);   
}   
  
void Dusman(int poz)   
{   
 int i;   
 if (poz==n+1)   
   {   
    k--;   
    if (!k)   
      Print();   
   }   
   else if (poz<n+1)   
          {   
           for (i=1;i<=n;i++)   
              if (!Mark[i] && !A[st[poz-1]][i])   
                {   
                 st[poz]=i;   
                 Mark[i]=1;   
                 Dusman(poz+1);   
                 Mark[i]=0;   
                }   
          }   
}   
  
int main()   
{   
 freopen(INPUT,"r",stdin);   
 freopen(OUTPUT,"w",stdout);   
  
 scanf("%d%d%d",&n,&k,&m);   
 for (i=1;i<=m;i++)   
    {   
     int x,y;   
     scanf("%d%d",&x,&y);   
     A[x][y]=A[y][x]=1;   
    }   
  
 Dusman(1);   
  
 fclose(stdin);   
 fclose(stdout);   
 return 0;   
}