code: 
  
  
  '''simple docstring'''
  
  
  
  
  
  from __future__ import annotations
  
  
  
  
  
  
  def 	UpperCAmelCase__(							_SCREAMING_SNAKE_CASE				:   list[int]   ):
  
  
  
  
  
  
  			"""simple docstring"""
  
  
  
  
  			__A=  [0] * len(_SCREAMING_SNAKE_CASE   )
  			for i in range(1,len(_SCREAMING_SNAKE_CASE   )   ):
  						__A=  duration_times[i - 1] + waiting_times[i - 1]
  			return waiting_times
  
  
  
  
  
  
  def 	UpperCAmelCase__(							_SCREAMING_SNAKE_CASE				:   list[int],_SCREAMING_SNAKE_CASE				:   list[int]   ):
  
  
  
  
  
  
  			"""simple docstring"""
  
  
  
  
  			return [
  			    duration_time + waiting_times[i]
  			    for i, duration_time in enumerate(_SCREAMING_SNAKE_CASE   )
  			]
  
  
  
  
  
  
  def 	UpperCAmelCase__(							_SCREAMING_SNAKE_CASE				:   list[int]   ):
  
  
  
  
  
  
  			"""simple docstring"""
  
  
  
  
  			return sum(_SCREAMING_SNAKE_CASE   ) / len(_SCREAMING_SNAKE_CASE   )
  
  
  
  
  
  
  def 	UpperCAmelCase__(							_SCREAMING_SNAKE_CASE				:   list[int]   ):
  
  
  
  
  
  
  			"""simple docstring"""
  
  
  
  
  			return sum(_SCREAMING_SNAKE_CASE   ) / len(_SCREAMING_SNAKE_CASE   )
  
  
  if __name__ == "__main__":
  					# process id's
  					UpperCAmelCase__      =							[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
  					UpperCAmelCase__      =							[1_9, 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
  					UpperCAmelCase__      =							calculate_waiting_times(duration_times)
  					UpperCAmelCase__      =							calculate_turnaround_times(duration_times, waiting_times)
  
  					# get the average times
  					UpperCAmelCase__      =							calculate_average_waiting_time(waiting_times)
  					UpperCAmelCase__      =							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'''
  
  
  
  
  
  from typing import Any
  class 	a__				:
  
  
  
  
  
  			'''simple docstring'''
  
  			def __init__(     self       : Any  )			->		int:
  						__A=  []
  						__A=  0
  			def __str__(     self       : Tuple  )			->		Dict:
  						__A=  '<' + str(self.stack  )[1:-1] + '>'
  						return printed
  			def 				lowerCAmelCase    (     self       : Tuple ,						lowerCAmelCase_       : Any  )			->		None:
  						self.stack.append(lowerCAmelCase_  )
  						__A=  self.length + 1
  			def 				lowerCAmelCase    (     self       : int  )			->		Any:
  						self.rotate(1  )
  						__A=  self.stack[self.length - 1]
  						__A=  self.stack[:-1]
  						self.rotate(self.length - 1  )
  						__A=  self.length - 1
  						return dequeued
  			def 				lowerCAmelCase    (     self       : Optional[int] ,						lowerCAmelCase_       : int  )			->		None:
  						for _ in range(lowerCAmelCase_  ):
  									__A=  self.stack[0]
  									__A=  self.stack[1:]
  									self.put(lowerCAmelCase_  )
  									__A=  self.length - 1
  			def 				lowerCAmelCase    (     self       : Tuple  )			->		Any:
  						__A=  self.get()
  						self.put(lowerCAmelCase_  )
  						self.rotate(self.length - 1  )
  						return front
  			def 				lowerCAmelCase    (     self       : Dict  )			->		int:
  						return self.length
  
  
  
  