Submission
Status:
PPPPPPPP
Score: 100
User: kittipatppc
Problemset: Sirabyrinth 2
Language: cpp
Time: 0.002 second
Submitted On: 2024-11-26 19:00:23
#include <bits/stdc++.h>
int dx[] = {1,-1,0,0};
int dy[] = {0,0,1,-1};
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
string A[m];
vector<vector<int>> visit(n,vector<int>(m,0));
int sx, sy;
for(int i=0; i<m;i++){
cin >> A[i];
for(int j=0;j<n;j++){
if (A[i][j] == 'S'){
sx = i;
sy = j;
}
}
}
int size = 1;
queue <pair<int,int>> q;
q.push(make_pair(sx, sy));
while (!q.empty()) {
int x = q.front().first, y = q.front().second;
q.pop();
visit[x][y] = 1;
for(int i=0;i<4;i++){
int nx = x+dx[i], ny = y+dy[i];
if(nx>=0 && ny>=0 && nx<n && ny<m && visit[nx][ny]==0){
if (A[nx][ny]=='.'){
visit[nx][ny] = 1;
q.push(make_pair(nx,ny));
size+=1;
}
}
}
}
cout << size;
//cout << sx << " " << sy;
//for(int i=0; i<m;i++){cout << A[i] << "\n";}
}