Cod sursa(job #3374224)

Utilizator GabrielPetrePetre Gabriel GabrielPetre Data 8 noiembrie 2026 20:57:00
Problema Sate Scor 0
Compilator py Status done
Runda Arhiva de probleme Marime 1.05 kb
from collections import deque


def solve():
    try:
        with open("sate.in", "r") as fin:
            data = fin.read().split()
    except FileNotFoundError:
        return

    if not data:
        return

    n = int(data[0])
    m = int(data[1])
    x = int(data[2])
    y = int(data[3])

    adj = [[] for _ in range(n + 1)]

    idx = 4
    for _ in range(m):
        i = int(data[idx])
        j = int(data[idx + 1])
        d = int(data[idx + 2])
        idx += 3

        adj[i].append((j, d))
        adj[j].append((i, -d))

    visited = [False] * (n + 1)
    pos = [0] * (n + 1)

    q = deque([x])
    visited[x] = True
    pos[x] = 0

    while q:
        u = q.popleft()

        if u == y:
            break

        for v, weight in adj[u]:
            if not visited[v]:
                visited[v] = True
                pos[v] = pos[u] + weight
                q.append(v)

    with open("sate.out", "w") as fout:
        fout.write(f"{abs(pos[y])}\n")


if __name__ == '__main__':
    solve()