11from collections import defaultdict
2+ from typing import DefaultDict , List
23
34
4- def min_cost (basket1 : list [int ], basket2 : list [int ]) -> int :
5+ def min_cost (basket1 : List [int ], basket2 : List [int ]) -> int :
56 n = len (basket1 )
6- freq = defaultdict (int )
7- mn = float ("inf" )
7+ freq : DefaultDict [ int , int ] = defaultdict (int )
8+ mn : float = float ("inf" )
89
910 for i in range (n ):
1011 freq [basket1 [i ]] += 1
1112 freq [basket2 [i ]] -= 1
1213 mn = min (mn , basket1 [i ], basket2 [i ])
1314
14- to_swap = []
15+ to_swap : List [ int ] = []
1516 for j , k in freq .items ():
1617 if k % 2 != 0 :
1718 return - 1
1819 to_swap += [j ] * (abs (k ) // 2 )
1920
2021 to_swap .sort ()
21- res = 0
22+ res : int = 0
2223 for i in range (len (to_swap ) // 2 ):
23- res += min (to_swap [i ], 2 * mn )
24+ # Ensure mn is treated as int during arithmetic
25+ res += min (to_swap [i ], 2 * int (mn ))
2426
2527 return res
2628
@@ -31,7 +33,7 @@ def min_cost(basket1: list[int], basket2: list[int]) -> int:
3133 ([4 , 2 , 2 , 2 ], [1 , 4 , 1 , 2 ]), # Expected: 1
3234 ([1 , 2 , 3 , 4 ], [2 , 3 , 4 , 1 ]), # Expected: 0
3335 ([1 , 1 , 1 , 1 ], [1 , 1 , 1 , 1 ]), # Expected: 0
34- ([1 , 2 , 2 ], [2 , 1 , 1 ]), # Expected: -1
36+ ([1 , 2 , 2 ], [2 , 1 , 1 ]), # Expected: -1
3537 ([5 , 3 , 3 , 2 ], [2 , 5 , 5 , 3 ]), # Expected: -1
3638 ]
3739
0 commit comments