diff --git a/Coding/C++/Connnect_components_using_DFS.cpp b/Coding/C++/Connnect_components_using_DFS.cpp new file mode 100644 index 00000000..cd9d5888 --- /dev/null +++ b/Coding/C++/Connnect_components_using_DFS.cpp @@ -0,0 +1,99 @@ +#include +using namespace std; + +int n,m,k; +const int N = 100; +const int M = 100; +int visited[N][M]; +char adj[N][M]; + + + +void dfs(int i,int j,int &ans){ + + if((i>n-1 or j>m-1 or i<0 or j<0) ){ + return; + } + + if(adj[i][j]=='*'){ + return; + } + + visited[i][j]=1; + ans++; + + + for(int dx=-1;dx<=1;dx++){ + for(int dy=-1;dy<=1;dy++){ + if((abs(dx)+abs(dy))!=2){ + if(visited[i+dx][j+dy]==0){ + dfs(i+dx,j+dy,ans); + } + } + } + } + + if((i==n-1 or j==m-1 or i==0 or j==0) ){ + if(adj[i][j]=='.'){ + ans=0; + } + } + +} + +void solve(){ + cin>>n>>m>>k; + + for(int i=0;i>adj[i][j]; + } + } + + memset(visited,0,sizeof visited); + + vector>> ans; + int cnt =0; + for(int i=0;i>t; + while(t--){ + solve(); + } + return 0; + +}