Submission #1273288

#TimeUsernameProblemLanguageResultExecution timeMemory
1273288anhkhoaTram (CEOI13_tram)Pypy 3
0 / 100
167 ms52880 KiB
import sys
from collections import defaultdict, deque

def solve():
    input = sys.stdin.read().split()
    idx = 0
    N = int(input[idx]); idx += 1
    M = int(input[idx]); idx += 1  
    K = int(input[idx]); idx += 1
    
    graph = defaultdict(list)
    
    # Add main line tracks
    for i in range(1, N):
        graph[i].append(i+1)
        graph[i+1].append(i)
    
    # Add additional tracks
    for _ in range(K):
        u = int(input[idx]); idx += 1
        v = int(input[idx]); idx += 1
        graph[u].append(v)
        graph[v].append(u)
    
    # Check degrees
    for i in range(1, N+1):
        if len(graph[i]) > 2:
            print(-1)
            return
    
    visited = [False] * (N+1)
    components = []
    cycles = 0
    
    for i in range(1, N+1):
        if not visited[i]:
            # BFS/DFS to find component
            comp = []
            stack = [i]
            visited[i] = True
            
            while stack:
                node = stack.pop()
                comp.append(node)
                for neighbor in graph[node]:
                    if not visited[neighbor]:
                        visited[neighbor] = True
                        stack.append(neighbor)
            
            components.append(comp)
            
            # Check if component is a cycle
            is_cycle = True
            for node in comp:
                if len(graph[node]) != 2:
                    is_cycle = False
                    break
            if is_cycle:
                cycles += 1
    
    if cycles > 1:
        print(-1)
        return
    
    if cycles == 1:
        if len(components) == 1:
            print(0)
        else:
            print(-1)
        return
    
    # No cycles, only paths
    print(len(components))

if __name__ == "__main__":
    solve()

Compilation message (stdout)

Compiling 'tram.py'...

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

=======
#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...