734C. Anton and Making Potions - Codeforces Solution C++

  Problem Link : 734C. Anton and Making Potions 


✅ C++ Solution :

 
#include<bits/stdc++.h>
using namespace std;

#define ll long long int

int main()
{
	ll n,m,k,x,s;
	cin>>n>>m>>k;
	cin>>x>>s;

	ll first[m],fcost[m];
	for(ll i=0;i<m;i++)
		cin>>first[i];
	for(ll i=0;i<m;i++)
		cin>>fcost[i];

	ll second[k],scost[k];
	for(ll i=0;i<k;i++)
		cin>>second[i];
	for(ll i=0;i<k;i++)
		cin>>scost[i];

	ll ans = n*x;
	ll low,high,mid;
	ll cost;
	for(ll i=0;i<m;i++)
	{
		cost=s-fcost[i];
		if(cost<0)
		    continue;
		ll rem;    
		if(cost<scost[0])
		    rem=n;
		else
		{
    		low=0,high=k-1;
    		while(low<high)
    		{
    			mid=low+(high-low+1)/2;
    			if(scost[mid]<=cost)
    				low=mid;
    			else
    				high=mid-1;
    		}
    		rem=n-second[high];
    		if(rem<0)
    		{
    			ans=0;
    			break;
    		}
		}
		ans=min(ans,rem*first[i]);
	}

	for(ll i=0;i<k;i++)
	{
		cost=s-scost[i];
		if(cost<0)
			continue;
		ll rem=n-second[i];
		if(rem<=0)
		{
			ans=0;
			break;
		}
		ans=min(ans,rem*x);
	}

	cout<<ans;


}

 

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