Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: faofao
Problemset: หุ่นพัง
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-16 09:54:22
#include <bits/stdc++.h>
using namespace std;
const int mxN = 31 ;
int n;
int cnt = 0 ;
char grid[mxN][mxN] ;
bool vis[mxN][mxN] ;
int di[] = {0,-1} ;
int dj[] = {-1,0} ;
void dfs(int i,int j){
if(vis[i][j] || grid[i][j] == 'X') return ;
vis[i][j] = 1;
for(int k=0 ; k<2 ; k++){
int ni = i+di[k] ;
int nj = j+dj[k] ;
if(vis[ni][nj] || ni<0 || nj<0 || ni>=n || nj>=n) continue;
dfs(ni,nj) ;
}
}
int main(){
ios::sync_with_stdio(0),cin.tie(0) ;
cin >> n ;
for(int i=0 ; i<n ; i++){
string s ; cin >> s;
for(int j=0 ; j<n ; j++){
grid[i][j] = s[j] ;
}
}
dfs(n-1,n-1) ;
for(int i=0 ; i<n ; i++){
for(int j=0 ; j<n ; j++){
if(vis[i][j]) cnt++ ;
// cout << vis[i][j] << " " ;
}
// cout << "\n" ;
}
cout << cnt ;
}