Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream fin("schior.in");
- ofstream fout("schior.out");
- int di[8]={0,0,1,-1,1,1,-1,-1};
- int dj[8]={1,-1,0,0,-1,1,-1,1};
- bool ok(int i,int j,int n,int m)
- {
- if (i<1||j<1||i>n||j>m) return false;
- return true;
- }
- int main()
- {
- int n,m;
- fin>>n>>m;
- int l,o;
- fin>>o>>l;
- int v[n+1][m+1];
- int w[n+1][m+1];
- memset(w,0,sizeof w);
- for (int i=1;i<=n;++i)
- for (int j=1;j<=m;++j)
- fin>>v[i][j];
- queue<pair<int, int> > q;
- w[o][l]=1;
- int altmin=v[o][l];
- q.push(make_pair(o,l));
- while (!q.empty())
- {
- int i,j;
- i=q.front().first;
- j=q.front().second;
- q.pop();
- for(int d=0;d<8;++d)
- {
- int ii,jj;
- ii=i+di[d];
- jj=j+dj[d];
- if (ok(ii,jj,n,m)&&v[ii][jj]<=v[i][j]&&w[ii][jj]==0)
- {
- if (v[ii][jj]<altmin) altmin=v[ii][jj];
- w[ii][jj]=1;
- q.push(make_pair(ii,jj));
- }
- }
- }
- fout<<altmin;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement