Advertisement
alvaro_93

UVA 291

Jul 4th, 2015
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.53 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define NVERT 5
  4. #define NARI 8
  5.  
  6. /*
  7.  *
  8.  */
  9. void initMatriz(int matrizAdy[NVERT+1][NVERT+1]){
  10.     int i,j;
  11.     for (i=0;i<NVERT;i++)
  12.         for (j=0;j<NVERT;j++)
  13.             if (i==j)
  14.                 matrizAdy[i+1][j+1]=1;
  15.             else
  16.                 matrizAdy[i+1][j+1]=0;
  17.        
  18.     matrizAdy[1][4]=1;
  19.     matrizAdy[4][1]=1;
  20.     matrizAdy[2][4]=1;
  21.     matrizAdy[4][2]=1;
  22.    
  23.        
  24.    
  25.        
  26. }
  27. void imprimeSol(int sec[NARI+1]){
  28.     int i;
  29.     for(i=0;i<NARI+1;i++)
  30.         printf("%d",sec[i]);
  31.     printf("\n");
  32. }
  33.  
  34. int getDraw(int matrizAdy[NVERT+1][NVERT+1],int sec[NARI+1],int verti,int n){
  35.     int i,vertn;
  36.     if (n==NARI){
  37.         imprimeSol(sec);
  38.         return 0;
  39.                
  40.        
  41.     }
  42.     for(i=0;i<NVERT;i++){
  43.         if (matrizAdy[verti][i+1]==0){
  44.             vertn=i+1;
  45.             matrizAdy[verti][vertn]=1;
  46.             matrizAdy[vertn][verti]=1;
  47.             sec[n+1]=vertn;
  48.             if  (getDraw(matrizAdy,sec,vertn,n+1))
  49.                 return 1;
  50.             else{
  51.                 matrizAdy[verti][vertn]=0;
  52.                 matrizAdy[vertn][verti]=0;
  53.                 sec[n+1]=0;
  54.             }
  55.            
  56.            
  57.            
  58.         }
  59.     }
  60.     return 0;
  61.    
  62.    
  63.    
  64.    
  65. }
  66.  
  67. int main(int argc, char** argv)
  68. {
  69.     int matrizAdy[NVERT+1][NVERT+1];//creo mi matriz de adyacencia 5X5
  70.     int sec[NARI+1];
  71.     sec[0]=1;
  72.     initMatriz(matrizAdy);
  73.     getDraw(matrizAdy,sec,1,0);
  74.     return (EXIT_SUCCESS);
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement