Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define vi vector<int>
- #define ll long long
- #define pb push_back
- #define mp make_pair
- #define ii pair<int,int>
- vector<vector<char>> graph(505,vector<char>(505));
- int n,m;
- int dfs(int i,int j){ // na main chamamos dfs(start), aonde start é o vértice que começamos o dfs
- int counter = 0;
- if(graph[i][j] == '.') graph[i][j] = 'X';
- for(int w = j+1; w < m; w++){
- cout << "<" << i << "," << w << ">" << endl;
- if(graph[i][w] == '.'){
- dfs(i,w);
- if((i < n-1)&&(graph[i+1][w] != 'X')) dfs(i+1,w);
- if((i > 0)&&(graph[i-1][w] != 'X')) dfs(i-1,w);
- }else{
- counter++;
- }
- }
- return counter;
- }
- int main(){
- scanf("%d %d",&n,&m);
- for(int i=0;i<n;++i)
- {
- for(int j=0;j<m;j++){
- scanf("%c", &graph[i][j]);
- }
- scanf("\n");
- }
- printf("%d\n",dfs(0,0));
- return 0;
- }
- /*
- compilar
- g++ arquivo.cpp -std=c++11 -o executavel
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement