@@ -7,9 +7,9 @@ class RoadsAndLibraries:
7
7
_paths = []
8
8
_unions = 0
9
9
10
- def __init__ (self , n : int , cities : list [list [int ]]):
10
+ def __init__ (self , q_paths : int , cities : list [list [int ]]):
11
11
12
- self ._paths = [- 1 for _ in range (n + 1 )]
12
+ self ._paths = [- 1 for _ in range (q_paths + 1 )]
13
13
14
14
for path in cities :
15
15
city_a , city_b = path [0 ], path [1 ]
@@ -19,26 +19,30 @@ def __init__(self, n: int, cities: list[list[int]]):
19
19
def find (self , a : int ):
20
20
return a if self ._paths [a ] < 0 else self .find (self ._paths [a ])
21
21
22
- def unite (self , a : int , b : int ) -> bool :
23
- a = self .find (a )
24
- b = self .find (b )
25
- if a == b :
22
+ def unite (self , _point_a : int , _point_b : int ) -> bool :
23
+ point_a = self .find (_point_a )
24
+ point_b = self .find (_point_b )
25
+ if point_a == point_b :
26
26
return False
27
- if self ._paths [a ] > self ._paths [b ]:
28
- a , b = b , a
29
- self ._paths [a ] += self ._paths [b ]
30
- self ._paths [b ] = a
27
+ if self ._paths [point_a ] > self ._paths [point_b ]:
28
+ point_a , point_b = point_b , point_a
29
+ self ._paths [point_a ] += self ._paths [point_b ]
30
+ self ._paths [point_b ] = point_a
31
31
return True
32
32
33
33
def get_unions (self ) -> int :
34
34
return self ._unions
35
35
36
36
37
- def roads_and_libraries (n : int , c_lib : int , c_road : int , cities : list [list [int ]]) -> int :
37
+ def roads_and_libraries (
38
+ q_paths : int ,
39
+ c_lib : int ,
40
+ c_road : int ,
41
+ cities : list [list [int ]]) -> int :
38
42
39
- ral = RoadsAndLibraries (n , cities )
43
+ ral = RoadsAndLibraries (q_paths , cities )
40
44
unions = ral .get_unions ()
41
45
42
- ans1 = c_lib * n
43
- ans2 = c_road * unions + c_lib * (n - unions )
46
+ ans1 = c_lib * q_paths
47
+ ans2 = c_road * unions + c_lib * (q_paths - unions )
44
48
return min (ans1 , ans2 )
0 commit comments