Submission

Status:

[PPPPPPPPPPPPPPP-SSSSSSSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: sorrkub

Problemset: ย่องเบาหลบกับระเบิด

Language: cpp

Time: 0.092 second

Submitted On: 2026-02-08 21:16:00

#include<bits/stdc++.h>
using namespace std;
int dx[8] = {0,0,-1,1,-1,1,-1,1} , dy[8] = {1,-1,0,0,1,-1,1,-1};

int main(){
    int n,m;
    cin>>n>>m;
    vector<vector<bool>> vec(n,vector<bool> (m,true));
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            int a;
            cin>>a;
            if(a == 0){
                vec[i][j] = false;
                for(int x=0;x<8;x++){
                    int rr = i+dy[x] , cc = j + dx[x];
                    if(rr >= 0 && rr<n && cc>=0 && cc <m){
                        vec[rr][cc] = false;
                    }
                }
            }
        }
    }
    const int inf = 1e9+7;
    vector<vector<int>> vis(n,vector<int> (m,inf));
    queue<pair<int,int>> que;
    for(int i=0;i<n;i++){
        if(vec[i][0]){
            que.push({i,0});
            vis[i][0] = 0;
        }
    }
    while(!que.empty()){
        auto [r,c] = que.front();
        que.pop();
        for(int i=0;i<4;i++){
            int rr = r + dy[i],cc = c+dx[i];
            if(rr >=0 && rr<n && cc>=0 && cc<m && vec[rr][cc] && vis[rr][cc] > vis[r][c]+1){
                vis[rr][cc] = vis[r][c] + 1;
                vec[rr][cc] = false;
                que.push({rr,cc});
            } 
        }
    }
    int minn =inf;
    for(int i=0;i<n;i++){
        // for(int j=0;j<m;j++){
        //     cout<<vis[i][j]<<" ";
        // }
        // cout<<'\n';
        minn = std::min(minn, vis[i][m-1]);
    }
    if(minn == inf){
        cout<<"-1";
    return 0;
    }
    cout<<minn+1;
}

/*
                   _ooOoo_
                  o8888888o
                  88" . "88
                  (| -_- |)
                  O\  =  /O
               ____/`---'\____
             .'  \|     |//  `.
            /  \|||  :  |||//  \
           /  _||||| -:- |||||-  \
           |   | \  -  /// |   |
           | \_|  ''\---/''  |   |
           \  .-\__  `-`  ___/-. /
         ___`. .'  /--.--\  `. . __
      ."" '<  `.___\_<|>_/___.'  >'"".
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
     \  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======
                   `=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
              pass System Test!
*/