Submission

Status:
PPPPPPPP

Score: 100

User: Monasm

Problemset: Sirabyrinth 2

Language: cpp

Time: 0.003 second

Submitted On: 2024-11-21 19:01:08

#include <bits/stdc++.h>

using namespace std;

int gx[] = {1,-1,0,0};
int gy[] = {0,0,1,-1};

int main(){
    int n,m;cin>>n>>m;
    queue<pair<int,int>> q;
    vector<vector<char>> adj(n,vector<char>(m));
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>adj[i][j];
            if(adj[i][j]=='S'){
                q.push({i,j});
            }
        }
    }
    int ans=0;
    while(!q.empty()){
        ans++;
        int nx = q.front().first;
        int ny = q.front().second;
        adj[nx][ny]='#';
        q.pop();
        for(int i=0;i<4;i++){
            int x=gx[i]+nx,y=gy[i]+ny;
            if(0<=x&&x<n&&0<=y&&y<m&&adj[x][y]=='.'){
                adj[x][y] = '#';
                q.push({x,y});
            }
        }
    }
    cout<<ans;
}