551B. ZgukistringZ - Codeforces Solution C++

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