➤ Problem Link : ALLIZWEL
👉 Hint : edit please
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
bool dfs(int i,int j,string all,int l,int visited[101][101],char arr[101][101])
{
visited[i][j]=1;
if(l==10)
return true;
if(arr[i-1][j]==all[l] && !visited[i-1][j] && dfs(i-1,j,all,l+1,visited,arr))
return true;
if(arr[i][j-1]==all[l] && !visited[i][j-1] && dfs(i,j-1,all,l+1,visited,arr))
return true;
if(arr[i-1][j-1]==all[l] && !visited[i-1][j-1] && dfs(i-1,j-1,all,l+1,visited,arr))
return true;
if(arr[i+1][j]==all[l] && !visited[i+1][j] && dfs(i+1,j,all,l+1,visited,arr))
return true;
if(arr[i][j+1]==all[l] && !visited[i][j+1] && dfs(i,j+1,all,l+1,visited,arr))
return true;
if(arr[i+1][j+1]==all[l] && !visited[i+1][j+1] && dfs(i+1,j+1,all,l+1,visited,arr))
return true;
if(arr[i+1][j+1]==all[l] && !visited[i+1][j+1] && dfs(i+1,j+1,all,l+1,visited,arr))
return true;
if(arr[i-1][j+1]==all[l] && !visited[i-1][j+1] && dfs(i-1,j+1,all,l+1,visited,arr))
return true;
if(arr[i+1][j-1]==all[l] && !visited[i+1][j-1] && dfs(i+1,j-1,all,l+1,visited,arr))
return true;
visited[i][j]=0;
return false;
}
int main()
{
int t;
cin>>t;
char arr[101][101];
int visited[101][101];
string all="ALLIZZWELL";
while(t--)
{
int r,c;
cin>>r>>c;
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
cin>>arr[i][j];
memset(visited,0,sizeof(visited));
int flag=0;
for(int i=1;i<=r;i++)
{
for(int j=1;j<=c;j++)
{
if(arr[i][j]=='A')
{
visited[i][j]=1;
if(dfs(i,j,all,1,visited,arr))
{
flag=1;
break;
}
visited[i][j]=0;
}
}
if(flag==1)
break;
}
if(flag==0)
cout<<"NO"<<endl;
else
cout<<"YES"<<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!!
