




def 					UpperCAmelCase__     (   lowerCamelCase      ):
  if not numbers:
    return 0

  if not isinstance(lowerCamelCase,	(list, tuple)      ) or not all(
      isinstance(lowerCamelCase,	lowerCamelCase      ) for number in numbers      ):
    raise ValueError("numbers must be an iterable of integers"      )

  lowercase			:Tuple							=  numbers[0]

  for i in range(1,	len(lowerCamelCase      )      ):
    # update the maximum and minimum subarray products
    lowercase			:Optional[int]							=  numbers[i]
    if number < 0:
      lowercase		,			lowercase			:Optional[Any]							=  min_till_now, max_till_now
    lowercase			:List[str]							=  max(lowerCamelCase,	max_till_now * number      )
    lowercase			:Dict							=  min(lowerCamelCase,	min_till_now * number      )

    # update the maximum product found till now
    lowercase			:str							=  max(lowerCamelCase,	lowerCamelCase      )

  return max_prod









import torch



def 					UpperCAmelCase__     (   ):
  if torch.cuda.is_available():
    lowercase			:Optional[int]							=  torch.cuda.device_count()
  else:
    lowercase			:Dict							=  0
  print(F"Successfully ran on {num_gpus} GPUs"      )


if __name__ == "__main__":
     main()



