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