Advertisement
a53

Alpinist

a53
Jan 1st, 2022
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1.  
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int n,a[25][25],b[25][25],m;
  7. int maxi;
  8.  
  9. const int dx[]={0,0,-1,1};
  10. const int dy[]={-1,1,0,0};
  11.  
  12. bool inmat(int i,int j){
  13. return i>=1 && i<=n && j<=m && j>=1;
  14. }
  15.  
  16. void back(int i,int j){
  17. if(i==n && j==m)
  18. maxi = max(maxi,b[n][m]);
  19. else{
  20. for(int d=0;d<4;++d){
  21. int ii=i+dx[d];
  22. int jj=j+dy[d];
  23. if(inmat(ii,jj) && a[ii][jj] >= a[i][j] && b[ii][jj]==0){
  24. b[ii][jj]=b[i][j] + 1;
  25. back(ii,jj);
  26. b[ii][jj]=0;
  27. }
  28. }
  29. }
  30. }
  31.  
  32.  
  33. int main()
  34. {
  35. cin >> n >> m;
  36. for(int i=1;i<=n;++i)
  37. for(int j=1;j<=m;++j)
  38. cin >> a[i][j];
  39.  
  40. b[1][1]=1;
  41. back(1,1);
  42. if(maxi == 0)
  43. cout << "imposibil";
  44. else
  45. cout << maxi;
  46.  
  47. return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement