➤ Problem Link : MIXTURES
👉 Hint : Simple DP
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; int arr[101]; int dp[101][101]; int color[101][101]; int main() { int n,i,j,ans; while(scanf("%d",&n)!=EOF) { for(int i=1;i<=n;i++) cin>>arr[i]; for(int i=1;i<=n;i++) { color[i][i]=arr[i]; dp[i][i]=0; } int ans; for(int k=2;k<=n;k++) { for(i=1,j=k;i<=n,j<=n;i++,j++) { dp[i][j]=INT_MAX; for(int p=i;p<j;p++) { if((color[i][p]*color[p+1][j])+dp[i][p]+dp[p+1][j]<dp[i][j]) { dp[i][j]=(color[i][p]*color[p+1][j])+dp[i][p]+dp[p+1][j]; color[i][j]=(color[i][p]+color[p+1][j])%100; } } } } cout<<dp[1][n]<<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!!