Submission
Status:
PPPPPPPP
Score: 100
User: Power2two
Problemset: Sirabyrinth 2
Language: cpp
Time: 0.002 second
Submitted On: 2024-11-26 18:41:01
#include <bits/stdc++.h>
using namespace std;
int main(int argc, char** argv) {
int n,m,tn,tm,a=0;
cin>>n>>m;
char map[n][m];
bool v[n][m]={0};
deque<int> t[2];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>map[i][j];
if(map[i][j]=='S'){
tn=i;
tm=j;
}
}
}
t[0].push_back(tn);
t[1].push_back(tm);
while(t[0].empty()==0){
tn=t[0].front();
tm=t[1].front();
v[tn][tm]=1;
a++;
if(map[tn+1][tm]=='.' && v[tn+1][tm]==0){
t[0].push_back(tn+1);
t[1].push_back(tm);
v[tn+1][tm]=1;
}
if(map[tn-1][tm]=='.' && v[tn-1][tm]==0){
t[0].push_back(tn-1);
t[1].push_back(tm);
v[tn-1][tm]=1;
}
if(map[tn][tm+1]=='.' && v[tn][tm+1]==0){
t[0].push_back(tn);
t[1].push_back(tm+1);
v[tn][tm+1]=1;
}
if(map[tn][tm-1]=='.' && v[tn][tm-1]==0){
t[0].push_back(tn);
t[1].push_back(tm-1);
v[tn][tm-1]=1;
}
t[0].pop_front();
t[1].pop_front();
}
cout<<a;
}