from collections import defaultdict
import sys
sys.setrecursionlimit(2000)
def dfs(node, color):
global is_bipartite
colors[node] = color
for neighbor in tree_graph[node]:
if colors[neighbor] == -1:
dfs(neighbor, color ^ 1)
elif colors[neighbor] == color:
is_bipartite = False # Not expected in a tree but safe to check
def solve():
# Read input
N, M = map(int, input().split())
tree_graph = defaultdict(list)
unpaved_edges = []
# Read roads
for _ in range(M):
A, B, C = map(int, input().split())
if C == 0:
tree_graph[A].append(B)
tree_graph[B].append(A)
else:
unpaved_edges.append((C, A, B))
# Step 1: Color the tree using DFS
global colors, is_bipartite
colors = [-1] * (N + 1)
is_bipartite = True
dfs(1, 0) # Start coloring from node 1
# Step 2: Identify even-cycle unpaved roads
valid_unpaved = []
for cost, A, B in unpaved_edges:
if colors[A] != colors[B]: # Different colors => Even-length cycle
valid_unpaved.append(cost)
# Step 3: Find minimum cost to block all even-cycle edges
print(sum(valid_unpaved)) # Sum of all valid edges
Compilation message (stdout)
Compiling 'training.py'...
=======
adding: __main__.pyc (deflated 34%)
=======
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |