結果

問題 No.3482 Quod Erat Demonstrandum
コンテスト
ユーザー 👑 loop0919
提出日時 2026-03-27 22:10:17
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 666 ms / 2,000 ms
コード長 1,167 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 222 ms
コンパイル使用メモリ 85,376 KB
実行使用メモリ 153,280 KB
最終ジャッジ日時 2026-03-27 22:10:43
合計ジャッジ時間 23,129 ms
ジャッジサーバーID
(参考情報)
judge1_1 / judge3_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 45
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

from collections import deque

INF = 10**18


def bfs(graph, n):
    dist = [INF] * (2 * n)
    dist[0] = 0

    que = deque([0])

    while que:
        curr = que.popleft()

        for to in graph[curr]:
            if dist[to] < INF:
                continue

            dist[to] = dist[curr] + 1
            que.append(to)

    if dist[n - 1] < INF:
        return "Same", dist[n - 1]
    elif dist[2 * n - 1] < INF:
        return "Different", dist[2 * n - 1]
    else:
        return "Unknown", None


def solve():
    N, M = [int(s) for s in input().split()]

    graph = [[] for _ in range(2 * N)]

    for _ in range(M):
        A, B, C = [int(s) for s in input().split()]
        A, B = A - 1, B - 1

        if C == 1:
            graph[A].append(B)
            graph[B].append(A)
            graph[N + A].append(N + B)
            graph[N + B].append(N + A)
        else:
            graph[A].append(N + B)
            graph[B].append(N + A)

    res, dist = bfs(graph, N)

    if res == "Unknown":
        print(res)
    else:
        print(res, dist, sep="\n")


if __name__ == "__main__":
    T = int(input())

    for _ in range(T):
        solve()
0