





def  SCREAMING_SNAKE_CASE				(      snake_case						,   snake_case						,   snake_case							)		->    Optional[int]:
		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.
		__lowercase											=     [p / w for p, w in zip(__UpperCAmelCase						,   __UpperCAmelCase							)]

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

		# declaring useful variables
		__lowercase											=     len(__UpperCAmelCase							)
		__lowercase											=     0
		__lowercase											=     0
		__lowercase											=     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
				__lowercase											=     sorted_profit_by_weight[length - i - 1]
				__lowercase											=     profit_by_weight.index(__UpperCAmelCase							)
				__lowercase											=     -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.'''
		)

		SCREAMING_SNAKE_CASE_   :      Optional[int]			=   [int(x) for x in input('''Input profits separated by spaces: ''').split()]
		SCREAMING_SNAKE_CASE_   :      List[str]			=   [int(x) for x in input('''Input weights separated by spaces: ''').split()]
		SCREAMING_SNAKE_CASE_   :      Tuple			=   int(input('''Max weight allowed: '''))

		# Function Call
		calc_profit(profit, weight, max_weight)









from __future__ import annotations

import requests






def     __a					(		__UpperCAmelCase       ):
 a__												= f"https://hacker-news.firebaseio.com/v0/item/{story_id}.json?print=pretty"
 return requests.get(__UpperCAmelCase       ).json()






def     __a					(		__UpperCAmelCase = 10       ):
 a__												= '''https://hacker-news.firebaseio.com/v0/topstories.json?print=pretty'''
 a__												= requests.get(__UpperCAmelCase       ).json()[:max_stories]
 return [get_hackernews_story(__UpperCAmelCase       ) for story_id in story_ids]






def     __a					(		__UpperCAmelCase = 10       ):
 a__												= hackernews_top_stories(__UpperCAmelCase       )
 return "\n".join('''* [{title}]({url})'''.format(**__UpperCAmelCase       ) for story in stories       )


if __name__ == "__main__":
     print(hackernews_top_stories_as_markdown())





