






def     _A  (							SCREAMING_SNAKE_CASE__    :      list	,    SCREAMING_SNAKE_CASE__    :      list	,    SCREAMING_SNAKE_CASE__    :      int			):





    if len(lowercase__			) != len(lowercase__			):
        raise ValueError('''The length of profit and weight must be same.'''			)
    if max_weight <= 0:
        raise ValueError('''max_weight must greater than zero.'''			)
    if any(p < 0 for p in profit			):
        raise ValueError('''Profit can not be negative.'''			)
    if any(w < 0 for w in weight			):
        raise ValueError('''Weight can not be negative.'''			)

    # List created to store profit gained for the 1kg in case of each weight
    # respectively.  Calculate and append profit/weight for each element.
    UpperCamelCase			:List[Any]      				=  [p / w for p, w in zip(lowercase__	,    lowercase__			)]

    # Creating a copy of the list and sorting profit/weight in ascending order
    UpperCamelCase			:Union[str, Any]      				=  sorted(lowercase__			)

    # declaring useful variables
    UpperCamelCase			:int      				=  len(lowercase__			)
    UpperCamelCase			:List[str]      				=  0
    UpperCamelCase			:List[Any]      				=  0
    UpperCamelCase			:List[Any]      				=  0

    # loop till the total weight do not reach max limit e.g. 15 kg and till i<length
    while limit <= max_weight and i < length:
        # flag value for encountered greatest element in sorted_profit_by_weight
        UpperCamelCase			:str      				=  sorted_profit_by_weight[length - i - 1]
        UpperCamelCase			:Union[str, Any]      				=  profit_by_weight.index(lowercase__			)
        UpperCamelCase			:int      				=  -1

        # check if the weight encountered is less than the total weight
        # encountered before.
        if max_weight - limit >= weight[index]:
            limit += weight[index]
            # Adding profit gained for the given weight 1 ===
            # weight[index]/weight[index]
            gain += 1 * profit[index]
        else:
            # Since the weight encountered is greater than limit, therefore take the
            # required number of remaining kgs and calculate profit for it.
            # weight remaining / weight[index]
            gain += (max_weight - limit) / weight[index] * profit[index]
            break
        i += 1
    return gain


if __name__ == "__main__":
 print(
     """Input profits, weights, and then max_weight (all positive ints) separated by """
     """spaces."""
 )

 __snake_case				   =    [int(x) for x in input("""Input profits separated by spaces: """).split()]
 __snake_case				   =    [int(x) for x in input("""Input weights separated by spaces: """).split()]
 __snake_case				   =    int(input("""Max weight allowed: """))

 # Function Call
 calc_profit(profit, weight, max_weight)








'''simple docstring'''

class 	lowerCAmelCase  :







       def __init__(				self      :			List[Any]    ,   __lowercase      :			str    ,   __lowercase      :			Any    ,   __lowercase      :			str   ):







            """simple docstring"""







            __lowercase      		=name
            __lowercase      		=value
            __lowercase      		=weight







       def __repr__(				self      :			List[str]   ):







            """simple docstring"""







            return f'''{self.__class__.__name__}({self.name}, {self.value}, {self.weight})'''







       def       snake_case (				self      :			List[Any]   ):







            """simple docstring"""







            return self.value







       def       snake_case (				self      :			str   ):







            """simple docstring"""







            return self.name







       def       snake_case (				self      :			Optional[Any]   ):







            """simple docstring"""







            return self.weight







       def       snake_case (				self      :			Tuple   ):







            """simple docstring"""







            return self.value / self.weight






def 					__UpperCamelCase				(						lowercase__    :	Dict,       lowercase__    :	List[str],       lowercase__    :	str			):






     '''simple docstring'''





     __lowercase      		=[]
     for i in range(len(lowercase__			)			):
          menu.append(Things(name[i],       value[i],       weight[i]			)			)
     return menu

def 					__UpperCamelCase				(						lowercase__    :	List[Any],       lowercase__    :	List[Any],       lowercase__    :	str			):






     '''simple docstring'''





     __lowercase      		=sorted(lowercase__,       key=lowercase__,       reverse=lowercase__			)
     __lowercase      		=[]
     __lowercase		,  __lowercase      		=0.0, 0.0
     for i in range(len(lowercase__			)			):
          if (total_cost + items_copy[i].get_weight()) <= max_cost:
               result.append(items_copy[i]			)
               total_cost += items_copy[i].get_weight()
               total_value += items_copy[i].get_value()
     return (result, total_value)

def 					__UpperCamelCase				(						):






     '''simple docstring'''







if __name__ == "__main__":
       import doctest

       doctest.testmod()


