Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: Test
Problemset: หุ่นพัง
Language: cpp
Time: 0.004 second
Submitted On: 2026-01-15 14:11:47
/*
maze1
5
..X..
..X..
...XX
.XX..
.....
output:
11 <-- use only R,D to (4,4) have 11 start position
*/
#include <bits/stdc++.h>
using namespace std;
int M,N;
vector<string> mp;
vector<vector<bool>> ck;
int ct = 0;
bool f(int i,int j){
if(i < 0 || j < 0 || i >= M || j >= N) return false;
if(mp[i][j] == 'X') return false;
if(i==M-1 && j==N-1) return true;
if(ck[i][j] == true) return false;
ck[i][j] = true;
return f(i+1,j) || f(i,j+1);
}
int main(){
cin >> M;
N = M;
for(int i = 0; i < M; i++) {
string row;
cin >> row;
mp.push_back(row);
}
ck.resize(M, vector<bool>(N, false));
for(int i=0;i<M;i++){
for(int j=0;j<N;j++){
ck.assign(M, vector<bool>(N,false));
if(f(i,j)){
ct+=1;
}
}
}
cout << ct;
}