제출 #1169986

#제출 시각아이디문제언어결과실행 시간메모리
1169986mst_molikTraining (IOI07_training)Pypy 3
0 / 100
137 ms48840 KiB
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

컴파일 시 표준 출력 (stdout) 메시지

Compiling 'training.py'...

=======
  adding: __main__.pyc (deflated 34%)

=======
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...