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;
}