Skip to content

Commit b8aef45

Browse files
authored
Merge pull request #120 from Rishu-Xingh007/master
dfs_Batman.cpp
2 parents 3b13bd0 + d6ea0bb commit b8aef45

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

CodeChef_problems/dfs_Batman.cpp

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#include<bits/stdc++.h>
2+
#define ll long long
3+
using namespace std;
4+
#define N 251
5+
pair<ll,ll>mm[]{{-1,-1},{-1,0},{0,0},{0,1},{1,0},{1,1},{-1,1},{1,-1},{0,-1}};
6+
bool isvalid(ll i,ll j,ll n,ll m)
7+
{
8+
return(i>=0&&j>=0&&i<n&&j<m);
9+
}
10+
void dfs(ll adj[N][N],ll vis[N][N],ll n,ll m,ll i,ll j,ll &cnt)
11+
{
12+
vis[i][j]=1;
13+
cnt++;
14+
for(pair<ll,ll> x:mm)
15+
{
16+
ll nx=i+x.first,ny=j+x.second;
17+
if(isvalid(nx,ny,n,m)&&vis[nx][ny]==0&&adj[nx][ny]==1)
18+
dfs(adj,vis,n,m,nx,ny,cnt);
19+
}
20+
}
21+
int main()
22+
{
23+
ll t;
24+
cin>>t;
25+
while(t--)
26+
{
27+
ll n,m;
28+
cin>>n>>m;
29+
ll adj[N][N];
30+
ll vis[N][N];
31+
for(ll i=0;i<n;i++)
32+
{
33+
for(ll j=0;j<m;j++)
34+
{
35+
cin>>adj[i][j];
36+
vis[i][j]=0;
37+
}
38+
39+
}
40+
ll ans=0;
41+
for(ll i=0;i<n;i++)
42+
{
43+
for(ll j=0;j<m;j++)
44+
{
45+
ll cnt=0;
46+
if(vis[i][j]==0&&adj[i][j]==1)
47+
dfs(adj,vis,n,m,i,j,cnt);
48+
ans=max(ans,cnt);
49+
}
50+
}
51+
cout<<ans<<"\n";
52+
}
53+
}

0 commit comments

Comments
 (0)