

'''simple docstring'''





import doctest
from collections import deque

import numpy as np





class 		__SCREAMING_SNAKE_CASE							:







				def __init__(       self     :		int   ):
										'''simple docstring'''
										lowercase :							List[str]    		=[2, 1, 2, -1]
										lowercase :							Tuple    		=[1, 2, 3, 4]







				def  lowerCamelCase_	(       self     :		List[str]   ):
										'''simple docstring'''
										lowercase :							int    		=len(self.first_signal   )
										lowercase :							Any    		=len(self.second_signal   )

										lowercase :							Optional[Any]    		=max(UpperCAmelCase__		,					UpperCAmelCase__   )

										# create a zero matrix of max_length x max_length
										lowercase :							Any    		=[[0] * max_length for i in range(UpperCAmelCase__   )]

										# fills the smaller signal with zeros to make both signals of same length
										if length_first_signal < length_second_signal:
																self.first_signal += [0] * (max_length - length_first_signal)
										elif length_first_signal > length_second_signal:
																self.second_signal += [0] * (max_length - length_second_signal)
										for i in range(UpperCAmelCase__   ):
																lowercase :							Any    		=deque(self.second_signal   )
																rotated_signal.rotate(UpperCAmelCase__   )
																for j, item in enumerate(UpperCAmelCase__   ):
																						matrix[i][j] += item

        # multiply the matrix with the first signal
										lowercase :							Optional[Any]    		=np.matmul(np.transpose(UpperCAmelCase__   )		,					np.transpose(self.first_signal   )   )

										# rounding-off to two decimal places
										return [round(UpperCAmelCase__		,					2   ) for i in final_signal]


if __name__ == "__main__":
							doctest.testmod()












def    _A	(   lowerCamelCase = 200 ):
   a__						:    List[str]   		=	[1, 2, 5, 10, 20, 50, 100, 200]
   a__						:    Dict   		=	[0] * (pence + 1)
   a__						:    int   		=	1  # base case: 1 way to make 0 pence

   for coin in coins:
      for i in range(lowerCamelCase				,			pence + 1				,			1 ):
         number_of_ways[i] += number_of_ways[i - coin]
   return number_of_ways[pence]


if __name__ == "__main__":
  assert solution(2_0_0) == 7_3_6_8_2

