➤ Problem Link : 1288C. Two Arrays
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; #define ll long long int #define mod 1000000007 int main() { int n,m; cin>>n>>m; ll dpA[m+1][n+1],dpB[m+1][n+1]; memset(dpA,0,sizeof(dpA)); memset(dpB,0,sizeof(dpB)); for(int i=1;i<=m;i++) { for(int j=1;j<=n;j++) { if(i==1) { dpA[i][j]=1; continue; } for(int k=1;k<=j;k++) dpA[i][j]=(dpA[i][j]+dpA[i-1][k])%mod; } } for(int i=1;i<=m;i++) { for(int j=1;j<=n;j++) { if(i==1) { dpB[i][j]=1; continue; } for(int k=j;k<=n;k++) dpB[i][j]=(dpB[i][j]+dpB[i-1][k])%mod; } } // cout<<dpA[n][1]<<" "<<dpA[n][2]<<endl; // cout<<dpB[n][1]<<" "<<dpB[n][2]<<endl; ll ans=0; ll cnt; for(ll i=1;i<=n;i++) { for(ll k=i;k<=n;k++) { cnt=(dpA[m][i]*dpB[m][k])%mod; // cout<<cnt<<endl; ans=(ans+cnt)%mod; } } cout<<ans; }
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!!