Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: navysrimuang
Problemset: หุ่นพัง
Language: cpp
Time: 0.003 second
Submitted On: 2026-01-13 15:40:51
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
int main(){
int n;
cin >> n;
vector<vector<bool>> grid(n,vector<bool>(n,0));
for(int i = 0;i<n;i++){
for(int j = 0;j<n;j++){
char c;
cin >> c;
if( c == '.') grid[i][j] = 0;
else grid[i][j] = 1;
}
}
int cnt = 0;
vector<vector<int>> dp(n,vector<int>(n,0));
dp[n-1][n-1] = 1;
for(int i = n-1;i>=0;i--){
for(int j = n-1;j>=0;j--){
if(grid[i][j]) continue;
if(i != n-1){
if(!grid[i+1][j]){
dp[i][j] += dp[i+1][j];
}
}
if(j != n-1){
if(!grid[i][j+1]){
dp[i][j] += dp[i][j+1];
}
}
}
}
for(int i = 0;i<n;i++)
for(int j = 0;j<n;j++)
if(dp[i][j]) cnt++;
cout << cnt << "\n";
return 0;
}