'''simple docstring'''




import numpy as np
from cva import destroyAllWindows, imread, imshow, waitKey




class    a__				:






     def __init__(			self		:		List[Any]  ,    a		:		Tuple  ,    a		:		int  ,    a		:		int   ):





        """simple docstring"""



        if dst_width < 0 or dst_height < 0:
           raise ValueError('''Destination width/height should be > 0'''   )

        __lowerCamelCase          =  img
        __lowerCamelCase          =  img.shape[1]
        __lowerCamelCase          =  img.shape[0]
        __lowerCamelCase          =  dst_width
        __lowerCamelCase          =  dst_height

        __lowerCamelCase          =  self.src_w / self.dst_w
        __lowerCamelCase          =  self.src_h / self.dst_h

        __lowerCamelCase          =  __lowerCamelCase          =  (
            np.ones((self.dst_h, self.dst_w, 3)  ,    np.uinta   ) * 2_55
        )






     def        SCREAMING_SNAKE_CASE__       (			self		:		str   ):





        """simple docstring"""



        for i in range(self.dst_h   ):
           for j in range(self.dst_w   ):
              __lowerCamelCase          =  self.img[self.get_y(a   )][self.get_x(a   )]






     def        SCREAMING_SNAKE_CASE__       (			self		:		Optional[int]  ,    a		:		int   ):





        """simple docstring"""



        return int(self.ratio_x * x   )






     def        SCREAMING_SNAKE_CASE__       (			self		:		Tuple  ,    a		:		int   ):





        """simple docstring"""



        return int(self.ratio_y * y   )


if __name__ == "__main__":
  __UpperCAmelCase							,	__UpperCAmelCase												=8_0_0, 6_0_0
  __UpperCAmelCase												=imread("image_data/lena.jpg", 1)
  __UpperCAmelCase												=NearestNeighbour(im, dst_w, dst_h)
  n.process()

  imshow(
      f'Image resized from: {im.shape[1]}x{im.shape[0]} to {dst_w}x{dst_h}', n.output
  )
  waitKey(0)
  destroyAllWindows()

'''simple docstring'''




from __future__ import annotations






def __lowerCAmelCase			(							UpperCamelCase__    ,  UpperCamelCase__    )     ->   list[list[int]]:
    __lowerCamelCase          =  []
    create_all_state(1    ,  UpperCamelCase__    ,  UpperCamelCase__    ,  []    ,  UpperCamelCase__    )
    return result






def __lowerCAmelCase			(							UpperCamelCase__    ,  UpperCamelCase__    ,  UpperCamelCase__    ,  UpperCamelCase__    ,  UpperCamelCase__    ,  )     ->   None:
    if level == 0:
        total_list.append(current_list[:]    )
        return

    for i in range(UpperCamelCase__    ,  total_number - level + 2    ):
        current_list.append(UpperCamelCase__    )
        create_all_state(i + 1    ,  UpperCamelCase__    ,  level - 1    ,  UpperCamelCase__    ,  UpperCamelCase__    )
        current_list.pop()






def __lowerCAmelCase			(							UpperCamelCase__    )     ->   None:
    for i in total_list:
        print(*UpperCamelCase__    )


if __name__ == "__main__":
  __UpperCAmelCase												=4
  __UpperCAmelCase												=2
  __UpperCAmelCase												=generate_all_combinations(n, k)
  print_all_state(total_list)
