code: 
  
  
  '''simple docstring'''
  
  
  
  from __future__ import annotations
  
  
  
  
  
  
  def 						lowerCamelCase							(_SCREAMING_SNAKE_CASE   :     list[int]     ):
  					__a    : Union[str, Any]      					=						[0] * len(_SCREAMING_SNAKE_CASE     )
  					for i in range(1		,   len(_SCREAMING_SNAKE_CASE     )     ):
  										__a    : Any      					=						duration_times[i - 1] + waiting_times[i - 1]
  					return waiting_times
  
  
  
  
  
  
  def 						lowerCamelCase							(_SCREAMING_SNAKE_CASE   :     list[int]		,   _SCREAMING_SNAKE_CASE   :     list[int]     ):
  					return [
  					    duration_time + waiting_times[i]
  					    for i, duration_time in enumerate(_SCREAMING_SNAKE_CASE     )
  					]
  
  
  
  
  
  
  def 						lowerCamelCase							(_SCREAMING_SNAKE_CASE   :     list[int]     ):
  					return sum(_SCREAMING_SNAKE_CASE     ) / len(_SCREAMING_SNAKE_CASE     )
  
  
  
  
  
  
  def 						lowerCamelCase							(_SCREAMING_SNAKE_CASE   :     list[int]     ):
  					return sum(_SCREAMING_SNAKE_CASE     ) / len(_SCREAMING_SNAKE_CASE     )
  
  
  if __name__ == "__main__":
  	# process id's
  	__lowercase			:		str =			[1, 2, 3]
  
  	# ensure that we actually have processes
  	if len(processes) == 0:
  		print('Zero amount of processes')
  		raise SystemExit(0)
  
  	# duration time of all processes
  	__lowercase			:		Optional[int] =			[19, 8, 9]
  
  	# ensure we can match each id to a duration time
  	if len(duration_times) != len(processes):
  		print('Unable to match all id\'s with their duration time')
  		raise SystemExit(0)
  
  	# get the waiting times and the turnaround times
  	__lowercase			:		Union[str, Any] =			calculate_waiting_times(duration_times)
  	__lowercase			:		str =			calculate_turnaround_times(duration_times, waiting_times)
  
  	# get the average times
  	__lowercase			:		List[str] =			calculate_average_waiting_time(waiting_times)
  	__lowercase			:		Optional[int] =			calculate_average_turnaround_time(turnaround_times)
  
  	# print all the results
  	print('Process ID\tDuration Time\tWaiting Time\tTurnaround Time')
  	for i, process in enumerate(processes):
  		print(
  		    f'''{process}\t\t{duration_times[i]}\t\t{waiting_times[i]}\t\t'''
  		    f'''{turnaround_times[i]}'''
  		)
  	print(f'''Average waiting time = {average_waiting_time}''')
  	print(f'''Average turn around time = {average_turnaround_time}''')
  
  
  
  
style_context: 
  
  
  '''simple docstring'''
  
  
  
  import itertools
  
  
  
  
  
  
  def 						lowerCamelCase							(_SCREAMING_SNAKE_CASE   :     int = 1_000_000     ):
  					__a    : str      					=						[1]
  
  					for i in itertools.count(len(_SCREAMING_SNAKE_CASE     )     ):
  										__a    : Dict      					=						0
  										for j in itertools.count(1     ):
  															__a    : int      					=						-1 if j % 2 == 0 else +1
  															__a    : Optional[int]      					=						(j * j * 3 - j) // 2
  															if index > i:
  																				break
  															item += partitions[i - index] * sign
  															item %= number
  															index += j
  															if index > i:
  																				break
  															item += partitions[i - index] * sign
  															item %= number
  
  										if item == 0:
  															return i
  										partitions.append(_SCREAMING_SNAKE_CASE     )
  
  					return 0
  
  
  if __name__ == "__main__":
  	import doctest
  
  	doctest.testmod()
  
  	print(f'''{solution() = }''')
  
  
  
  