"""simple docstring"""






from __future__ import annotations

from decimal import Decimal

from numpy import array


def     UpperCAmelCase__ (       lowerCAmelCase__  :list[list[float]]	)				->					list[list[float]]:
      '''simple docstring'''


      lowercase														=			Decimal

      # Check if the provided matrix has 2 rows and 2 columns
      # since this implementation only works for 2x2 matrices
      if len(lowerCAmelCase__	) == 2 and len(matrix[0]	) == 2 and len(matrix[1]	) == 2:
            # Calculate the determinant of the matrix
            lowercase														=			float(
                d(matrix[0][0]	) * d(matrix[1][1]	) - d(matrix[1][0]	) * d(matrix[0][1]	)	)
            if determinant == 0:
                  raise ValueError("""This matrix has no inverse."""	)

            # Creates a copy of the matrix with swapped positions of the elements
            lowercase														=			[[0.0, 0.0], [0.0, 0.0]]
            lowercase							,							lowercase														=			matrix[1][1], matrix[0][0]
            lowercase							,							lowercase														=			-matrix[1][0], -matrix[0][1]

            # Calculate the inverse of the matrix
            return [
                [(float(d(lowerCAmelCase__	)	) / determinant) or 0.0 for n in row] for row in swapped_matrix
            ]
      elif (
          len(lowerCAmelCase__	) == 3
          and len(matrix[0]	) == 3
          and len(matrix[1]	) == 3
          and len(matrix[2]	) == 3
      ):
            # Calculate the determinant of the matrix using Sarrus rule
            lowercase														=			float(
                (
                    (d(matrix[0][0]	) * d(matrix[1][1]	) * d(matrix[2][2]	))
                    + (d(matrix[0][1]	) * d(matrix[1][2]	) * d(matrix[2][0]	))
                    + (d(matrix[0][2]	) * d(matrix[1][0]	) * d(matrix[2][1]	))
                )
                - (
                    (d(matrix[0][2]	) * d(matrix[1][1]	) * d(matrix[2][0]	))
                    + (d(matrix[0][1]	) * d(matrix[1][0]	) * d(matrix[2][2]	))
                    + (d(matrix[0][0]	) * d(matrix[1][2]	) * d(matrix[2][1]	))
                )	)
            if determinant == 0:
                  raise ValueError("""This matrix has no inverse."""	)

            # Creating cofactor matrix
            lowercase														=			[
                [d(0.0	), d(0.0	), d(0.0	)],
                [d(0.0	), d(0.0	), d(0.0	)],
                [d(0.0	), d(0.0	), d(0.0	)],
            ]
            lowercase														=			(d(matrix[1][1]	) * d(matrix[2][2]	)) - (
                d(matrix[1][2]	) * d(matrix[2][1]	)
            )
            lowercase														=			-(
                (d(matrix[1][0]	) * d(matrix[2][2]	)) - (d(matrix[1][2]	) * d(matrix[2][0]	))
            )
            lowercase														=			(d(matrix[1][0]	) * d(matrix[2][1]	)) - (
                d(matrix[1][1]	) * d(matrix[2][0]	)
            )
            lowercase														=			-(
                (d(matrix[0][1]	) * d(matrix[2][2]	)) - (d(matrix[0][2]	) * d(matrix[2][1]	))
            )
            lowercase														=			(d(matrix[0][0]	) * d(matrix[2][2]	)) - (
                d(matrix[0][2]	) * d(matrix[2][0]	)
            )
            lowercase														=			-(
                (d(matrix[0][0]	) * d(matrix[2][1]	)) - (d(matrix[0][1]	) * d(matrix[2][0]	))
            )
            lowercase														=			(d(matrix[0][1]	) * d(matrix[1][2]	)) - (
                d(matrix[0][2]	) * d(matrix[1][1]	)
            )
            lowercase														=			-(
                (d(matrix[0][0]	) * d(matrix[1][2]	)) - (d(matrix[0][2]	) * d(matrix[1][0]	))
            )
            lowercase														=			(d(matrix[0][0]	) * d(matrix[1][1]	)) - (
                d(matrix[0][1]	) * d(matrix[1][0]	)
            )

            # Transpose the cofactor matrix (Adjoint matrix)
            lowercase														=			array(lowerCAmelCase__	)
            for i in range(3	):
                  for j in range(3	):
                        lowercase														=			cofactor_matrix[j][i]

        # Inverse of the matrix using the formula (1/determinant) * adjoint matrix
            lowercase														=			array(lowerCAmelCase__	)
            for i in range(3	):
                  for j in range(3	):
                        inverse_matrix[i][j] /= d(lowerCAmelCase__	)

        # Calculate the inverse of the matrix
            return [[float(d(lowerCAmelCase__	)	) or 0.0 for n in row] for row in inverse_matrix]
      raise ValueError("""Please provide a matrix of size 2x2 or 3x3."""	)




"""simple docstring"""






from __future__ import annotations


def     UpperCAmelCase__ (       lowerCAmelCase__  :list[float]      ,	lowerCAmelCase__  :list[float]	)				->					float:
      '''simple docstring'''


      lowercase														=			sorted(numsa + numsa	)
      lowercase							,							lowercase														=			divmod(len(lowerCAmelCase__	)      ,	2	)
      if mod == 1:
            return all_numbers[div]
      else:
            return (all_numbers[div] + all_numbers[div - 1]) / 2


if __name__ == "__main__":
       import doctest

       doctest.testmod()
       __lowerCAmelCase					: List[Any]        =[float(x) for x in input("""Enter the elements of first array: """).split()]
       __lowerCAmelCase					: List[Any]        =[float(x) for x in input("""Enter the elements of second array: """).split()]
       print(F"""The median of two arrays is: {median_of_two_arrays(array_a, array_a)}""")



