Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <queue>
- using namespace std;
- int n,m;
- int main(int argc, const char * argv[]) {
- ios_base::sync_with_stdio(false);
- cin >> n >> m;
- int r,c;
- cin >> r >> c;
- int mat[1001][1001];
- memset(mat, -1, sizeof(mat));
- int di[] = {-1,1,0,0};
- int dj[] = {0,0, -1, 1};
- r--;
- c--;
- int ucenik,ii,jj;
- queue<int> q;
- q.push(r);
- q.push(c);
- q.push(0);
- while (!q.empty()) {
- ii = q.front();
- q.pop() ;
- jj=q.front();
- q.pop();
- ucenik=q.front();
- q.pop();
- for(int i=0; i<4; i++){
- int ni = ii+di[i];
- int nj = jj + dj[i];
- if(ni < 0 || nj < 0 || ni >= n || nj >= m)continue;
- if(mat[ni][nj] != -1)continue;
- mat[ni][nj] = ucenik + 1;
- q.push(ni);
- q.push(nj);
- q.push(ucenik + 1);
- }
- }
- int taken = 0;
- for(int i=0; i<n; i++){
- for(int j=0; j<m; j++){
- if(mat[i][j]==ucenik)taken++;
- }
- }
- cout<<ucenik<<endl<<taken<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement