➤ 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!!