Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define N 5
- void printArray(int array[], int n);
- int unTrazo(int matriz[N][N], int array[], int n);
- int isValid(int matriz[N][N], int array[], int n, int i);
- int main(){
- int matriz[N][N] = {{0,1,1,0,1},{1,0,1,0,1},{1,1,0,1,1},{0,0,1,0,1},{1,1,1,1,0}};
- int array[9];
- array[0] = 0;
- if(unTrazo(matriz,array,1)){
- printArray(array,9);
- }else{
- printf("No se pudo.\n");
- }
- return 0;
- }
- void printArray(int array[], int n){
- int i;
- for(i=0; i<n; i++)
- printf("%d ",array[i]);
- printf("\n");
- }
- int unTrazo(int matriz[N][N], int array[], int n){
- if(n == 9)
- return 1;
- int i;
- for(i=0; i<5; i++){
- if(isValid(matriz,array,n,i)){
- array[n] = i;
- if(unTrazo(matriz,array,n+1)){
- return 1;
- }
- }
- }
- }
- int isValid(int matriz[N][N], int array[], int n, int i){
- int a,b,j;
- if(matriz[array[n-1]][i] == 1){
- a = array[n-1];
- b = i;
- for(j=0; j<n-1; j++){
- if(array[j]==a && array[j+1] == b) return 0;
- if(array[j]==b && array[j+1] == a) return 0;
- }
- return 1;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment