➤ Problem Link : 118D. Caesar's Legions
✅ C++ Solution :
#include <bits/stdc++.h>
using namespace std;
#define ll long long int
#define m 100000000
int main()
{
int n1,n2,k1,k2;
cin>>n1>>n2>>k1>>k2;
ll dp[n1+n2+1][n1+1][2];
dp[0][0][0]=dp[0][0][1]=1;
for(int i=1;i<=n1;i++)
dp[0][i][0]=dp[0][i][1]=0;
for(int i=1;i<=n1+n2;i++)
{
for(int j=0;j<=n1 && j<=i;j++)
{
dp[i][j][0]=dp[i][j][1]=0;
for(int k=1;k<=k1 && k<=j && i-k>=0;k++)
dp[i][j][0]=(dp[i][j][0]+dp[i-k][j-k][1])%m;
for(int k=1;k<=k2 && k<=(i-j) && i-k>=0;k++)
dp[i][j][1]=(dp[i][j][1]+dp[i-k][j][0])%m;
}
}
cout<<(dp[n1+n2][n1][0]+dp[n1+n2][n1][1])%m;
}
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!!
