➤ Problem Link : 377A. Maze
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int n,m,k;
char arr[501][501];
bool visited[501][501];
int lt[]={-1,1,0,0};
int rt[]={0,0,-1,1};
void dfs(int x,int y)
{
int X,Y;
for(int i=0;i<4;i++)
{
X=x+lt[i];
Y=y+rt[i];
if(X>0 && X<=n && Y>0 && Y<=m && arr[X][Y]=='.' && !visited[X][Y])
{
visited[X][Y]=1;
dfs(X,Y);
}
}
if(k>0)
{
k--;
arr[x][y]='X';
}
}
int main()
{
cin>>n>>m>>k;
memset(visited,0,sizeof( visited ));
int si=-1,sj=-1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>arr[i][j];
if(arr[i][j]=='.')
{
si=i;
sj=j;
}
}
}
visited[si][sj]=1;
dfs(si,sj);
if(k>0)
arr[si][sj]='X';
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<arr[i][j];
cout<<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!!
