➤ Problem Link : 551B. ZgukistringZ
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
string a,b,c;
cin>>a;
cin>>b>>c;
map<char,int> amp,bmp,cmp;
for(char ch : a)
amp[ch]++;
for(char ch : b)
bmp[ch]++;
for(char ch : c)
cmp[ch]++;
int bc=INT_MAX,cc=INT_MAX;
ll ansb=-1,ansc=-1;
int curr;
for(char ch='a';ch<='z';ch++)
{
if(bmp[ch]>0)
bc=min(bc,amp[ch]/bmp[ch]);
if(cmp[ch]>0)
cc=min(cc,amp[ch]/cmp[ch]);
}
for(int i=0;i<=bc;i++)
{
curr=INT_MAX;
for(char ch='a';ch<='z';ch++)
{
if(cmp[ch]>0)
curr=min(curr,(amp[ch]-i*bmp[ch])/cmp[ch]);
}
if(ansb+ansc < i+curr)
{
ansb=i;
ansc=curr;
}
}
for(int i=0;i<ansb;i++)
cout<<b;
for(int i=0;i<ansc;i++)
cout<<c;
for(char ch='a';ch<='z';ch++)
{
if(amp[ch]>ansb*bmp[ch] + ansc*cmp[ch])
{
for(int j=1;j<=amp[ch]-(ansb*bmp[ch] + ansc*cmp[ch]);j++)
cout<<ch;
}
}
}
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!!
