377A. Maze - Codeforces Solution C++

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