➤ Problem Link : BABTWR
👉 Hint : edit please
✅ C++ Solution :
 
#include<bits/stdc++.h>
using namespace std;
int main()
{
    while(1)
    {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	int n;
	cin>>n;
	if(n==0)
	    break;
	int ht[n],wd[n],dpt[n];
	long long int sum=0;
	for(int i=0;i<n;i++)
	{
		cin>>ht[i]>>wd[i]>>dpt[i];
		sum+=ht[i]+wd[i]+dpt[i];
	}
	vector<pair<int,int > >base;
	vector<int> h;
	for(int i=0;i<n;i++)
	{
	
		base.push_back(make_pair(wd[i],dpt[i]));
		h.push_back(ht[i]);
		base.push_back(make_pair(wd[i],ht[i]));
		h.push_back(dpt[i]);
		base.push_back(make_pair(ht[i],dpt[i]));
		h.push_back(wd[i]);
		base.push_back(make_pair(ht[i],wd[i]));
		h.push_back(dpt[i]);
		base.push_back(make_pair(dpt[i],wd[i]));
		h.push_back(ht[i]);
		base.push_back(make_pair(dpt[i],ht[i]));
		h.push_back(wd[i]);
	}
	bool dp[sum+1][h.size()+1];
	memset(dp,true,sizeof(dp));
	int height=0;
	for(int i=1;i<=sum;i++)
	{
		for(int j=0;j<h.size();j++)
		{
			for(int k=0;k<h.size();k++)
			{
					if(i==h[j] || (i>=h[j] && dp[i-h[j]][k]==true && base[k].first<base[j].first && base[k].second<base[j].second))
					{
						dp[i][j]=true;
						height=max(height,i);
						break;
					}
					dp[i][j]=false;
			}
		}
	}
	cout<<height<<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!!
