Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int A[1001][1001];
- int f(int A[1001][1001], int n , int m, int L, int C)
- {
- int di[] = {0,0,1,-1};
- int dj[] = {1,-1,0,0};
- int pVal = -1, val = A[L][C];
- while(true)
- {
- int minDist = -1, poz = -1, minVal = -1;
- for(int k = 0;k < 4;k++)
- {
- int new_L = L + di[k];
- int new_C = C + dj[k];
- if(new_L < 1 || new_C < 1 || new_L > n || new_C > m)
- continue;
- int dif = abs(A[L][C] - A[new_L][new_C]);
- if(minDist == -1 || dif < minDist )
- {
- poz = k;
- minDist = dif;
- minVal = A[new_L][new_C];
- }
- else if(minDist == dif && minVal > A[new_L][new_C])
- {
- poz = k;
- minVal = A[new_L][new_C];
- }
- }
- if(pVal == minVal)
- return min(minVal, val);
- pVal = val;
- val = minVal;
- L += di[poz];
- C += dj[poz];
- }
- }
- int main()
- {
- int n , m, L, C ;
- cin >> n >> m >> L >> C;
- for(int i = 1;i<=n;i++)
- for(int j = 1;j<=m;j++)
- cin >> A[i][j];
- cout << f(A,n,m,L,C);
- return 0;
- }
- /*
- 4 5
- 2 4
- 57 51 70 72 75
- 56 58 60 66 77
- 59 54 93 90 76
- 88 52 61 79 68
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement