




'''simple docstring'''


def 	snake_case_					(UpperCamelCase :						list				,		UpperCamelCase :						list				,		UpperCamelCase :						int   ):





							'''simple docstring'''


							if len(UpperCamelCase   ) != len(UpperCamelCase   ):
														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.
							_a			  =       [p / w for p, w in zip(UpperCamelCase				,		UpperCamelCase   )]

							# Creating a copy of the list and sorting profit/weight in ascending order
							_a			  =       sorted(UpperCamelCase   )

							# declaring useful variables
							_a			  =       len(UpperCamelCase   )
							_a			  =       0
							_a			  =       0
							_a			  =       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
														_a			  =       sorted_profit_by_weight[length - i - 1]
														_a			  =       profit_by_weight.index(UpperCamelCase   )
														_a			  =       -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     							=	[int(x) for x in input('Input profits separated by spaces: ').split()]
				_snake_case   :   Optional[int]     							=	[int(x) for x in input('Input weights separated by spaces: ').split()]
				_snake_case   :   List[str]     							=	int(input('Max weight allowed: '))

				# Function Call
				calc_profit(profit, weight, max_weight)







'''simple docstring'''


_snake_case   :   Any     							=	tuple[float, float, float]
_snake_case   :   Optional[int]     							=	tuple[float, float, float]
def 	snake_case_					(UpperCamelCase :						Pointad				,		UpperCamelCase :						Pointad   ):





							'''simple docstring'''


							_a			  =       end_pointa[0] - end_pointa[0]
							_a			  =       end_pointa[1] - end_pointa[1]
							_a			  =       end_pointa[2] - end_pointa[2]
							return (x, y, z)
def 	snake_case_					(UpperCamelCase :						Vectorad				,		UpperCamelCase :						Vectorad   ):





							'''simple docstring'''


							_a			  =       ab[1] * ac[2] - ab[2] * ac[1]  # *i
							_a			  =       (ab[0] * ac[2] - ab[2] * ac[0]) * -1  # *j
							_a			  =       ab[0] * ac[1] - ab[1] * ac[0]  # *k
							return (x, y, z)
def 	snake_case_					(UpperCamelCase :						Vectorad				,		UpperCamelCase :						int   ):





							'''simple docstring'''


							return tuple(round(UpperCamelCase				,		UpperCamelCase   ) for x in vector   ) == (0, 0, 0)

def 	snake_case_					(UpperCamelCase :						Pointad				,		UpperCamelCase :						Pointad				,		UpperCamelCase :						Pointad				,		UpperCamelCase :						int = 10   ):





							'''simple docstring'''


							_a			  =       create_vector(UpperCamelCase				,		UpperCamelCase   )
							_a			  =       create_vector(UpperCamelCase				,		UpperCamelCase   )
							return is_zero_vector(get_ad_vectors_cross(UpperCamelCase				,		UpperCamelCase   )				,		UpperCamelCase   )

