Advertisement
a53

Alpinist1

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