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


}