➤ Problem Link : LABYR1
👉 Hint : edit please
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; int ans=0; int li,lj; void dfs(char arr[1001][1001],int i,int j,int l,int r,int c,int pi,int pj) { bool k=0; if(i-1 >=0 && i-1!=pi && arr[i-1][j]=='.') { k=1; dfs(arr,i-1,j,l+1,r,c,i,j); } if(i+1 <r && i+1!=pi && arr[i+1][j]=='.') { k=1; dfs(arr,i+1,j,l+1,r,c,i,j); } if(j-1 >=0 && j-1!=pj && arr[i][j-1]=='.') { k=1; dfs(arr,i,j-1,l+1,r,c,i,j); } if(j+1 <c && j+1!=pj && arr[i][j+1]=='.') { k=1; dfs(arr,i,j+1,l+1,r,c,i,j); } if(k==0) { if(l>ans) { ans=l; li=i; lj=j; } } } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int t; cin>>t; char arr[1001][1001]; while(t--) { int c,r; bool b=1; cin>>c>>r; for(int i=0;i<r;i++) { for(int j=0;j<c;j++) { cin>>arr[i][j]; } } ans=0; for(int i=0;i<r;i++) { for(int j=0;j<c;j++) { if(arr[i][j]=='.') { dfs(arr,i,j,0,r,c,-1,-1); dfs(arr,li,lj,0,r,c,-1,-1); b=0; break; } } if(b==0) break; } cout<<"Maximum rope length is "<<ans<<"."<<endl; } }
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!