➤ Problem Link : MBEEWALK
👉 Hint : Use unordered map
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
ll dp[500][500][20];;
ll func(int i,int j,int n,int si,int sj)
{
if(dp[i][j][n]!=-1)
return dp[i][j][n];
if(n==0)
{
if(i==si && j==sj)
return 1;
return 0;
}
dp[i][j][n]=func(i-2,j,n-1,si,sj)+func(i+2,j,n-1,si,sj)+func(i-1,j+2,n-1,si,sj)+func(i+1,j+2,n-1,si,sj)+func(i-1,j-2,n-1,si,sj)+func(i+1,j-2,n-1,si,sj);
return dp[i][j][n];
}
int main()
{
int t;
cin>>t;
while(t--)
{
memset(dp,-1,sizeof(dp));
int n;
cin>>n;
int s=200;
cout<<func(200,200,n,200,200)<<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!!
