-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlabirintoQ1.c
37 lines (31 loc) · 998 Bytes
/
labirintoQ1.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
int labirinto_bt(int labirinto[7][7],
int linha, int coluna,
int x, int y)
{
if (x==-1 || y==-1 || x==coluna || y==linha ||
labirinto[y][x] != 0)
return 0;
if (x==coluna-1 && y==linha-1)
return 1;
labirinto[y][x] = 9;
int ans = 0;
ans = labirinto_bt(labirinto, linha, coluna, x, y + 1) ||
labirinto_bt(labirinto, linha, coluna, x + 1, y) ||
labirinto_bt(labirinto, linha, coluna, x - 1, y) ||
labirinto_bt(labirinto, linha, coluna, x, y - 1);
labirinto[y][x] = 0;
return ans;
}
int main()
{
int linha, coluna, labirinto[7][7];
scanf("%d %d", &linha, &coluna);
for (int i = 0; i < linha; ++i)
for (int j = 0; j < coluna; ++j)
scanf("%d", &labirinto[i][j]);
int saida = labirinto_bt(labirinto, linha,
coluna, 0, 0);
printf("%d\n", saida);
return 0;
}