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