Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. #include <cstdio>
  2. #include <algorithm>
  3. #define Dim 25
  4.  
  5. using namespace std;
  6. int n, m, xi, yi, H[Dim][Dim], i, j, kmax, A[Dim][Dim];
  7. int dl[4] = {-1, 0, 1, 0};
  8. int dc[4] = {0, 1, 0, -1};
  9. bool sol(int x, int y)
  10. {
  11. if(x == 1 || x == n || y == 1 || y == m)
  12. return 1;
  13. return 0;
  14. }
  15. void backplan(int x, int y, int k)
  16. {
  17. int i, j, xx, yy;
  18. if(sol(x, y))
  19. {
  20. kmax = max(kmax, k - 1);
  21. return;
  22. }
  23. else
  24. for(i = 0; i < 4; ++ i)
  25. {
  26. xx = x + dl[i];
  27. yy = y + dc[i];
  28. if(!A[xx][yy] && H[xx][yy] < H[x][y])
  29. {
  30. A[xx][yy] = k;
  31. backplan(xx, yy, k + 1);
  32. A[xx][yy] = 0;
  33. }
  34. }
  35. }
  36. int main()
  37. {
  38. freopen("bila.in", "r", stdin);
  39. freopen("bila.out", "w", stdout);
  40. scanf("%d %d", &n, &m);
  41. for(i = 1; i <= n; ++ i)
  42. for(j = 1; j <= m; ++ j)
  43. scanf("%d", &H[i][j]);
  44. scanf("%d %d", &xi, &yi);
  45.  
  46. for(i = 0; i <= n + 1; ++ i)
  47. A[i][0] = A[i][m + 1] = -1;
  48. for(i = 0; i <= m + 1; ++ i)
  49. A[0][i] = A[n + 1][i] = -1;
  50.  
  51. A[xi][yi] = 1;
  52. backplan(xi, yi, 2);
  53. printf("%d\n", kmax);
  54.  
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement