➤ 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!!