Submission #66766258


Source Code Expand

Copy
import sys
sys.setrecursionlimit(10**6)
def main():
input = sys.stdin.readline
try:
N, M = map(int, input().split())
except ValueError:
return
graph = [[] for _ in range(N + 1)]
for _ in range(M):
a, b, w = map(int, input().split())
graph[a].append((b, w))
dist = [-1] * (N + 1)
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
import sys

sys.setrecursionlimit(10**6)


def main():
    input = sys.stdin.readline

    try:
        N, M = map(int, input().split())
    except ValueError:
        return

    graph = [[] for _ in range(N + 1)]

    for _ in range(M):
        a, b, w = map(int, input().split())
        graph[a].append((b, w))

    dist = [-1] * (N + 1)

    cycle_values = []

    def dfs(u):
        for v, w in graph[u]:
            if dist[v] != -1:  
                cycle_xor = dist[u] ^ w ^ dist[v]
                cycle_values.append(cycle_xor)
            else:
                dist[v] = dist[u] ^ w
                dfs(v)

    dist[1] = 0
    dfs(1)

    if dist[N] == -1:
        print(-1)
        return

    basis = []
    for val in cycle_values:
        for b in basis:
            val = min(val, val ^ b)
        if val > 0:
            basis.append(val)

    min_xor_path = dist[N]

    for b in basis:
        min_xor_path = min(min_xor_path, min_xor_path ^ b)

    print(min_xor_path)


if __name__ == "__main__":
    main()

Submission Info

Submission Time
Task D - XOR Shortest Walk
User bhtri
Language Python (CPython 3.11.4)
Score 0
Code Size 1086 Byte
Status WA
Exec Time 13 ms
Memory 9396 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 400
Status
AC × 3
AC × 30
WA × 3
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All hand_01.txt, hand_02.txt, hand_03.txt, hand_04.txt, hand_05.txt, hand_06.txt, hand_07.txt, hand_08.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, sample_01.txt, sample_02.txt, sample_03.txt
Case Name Status Exec Time Memory
hand_01.txt AC 12 ms 8968 KiB
hand_02.txt AC 12 ms 8840 KiB
hand_03.txt AC 11 ms 8800 KiB
hand_04.txt AC 12 ms 8812 KiB
hand_05.txt AC 12 ms 8880 KiB
hand_06.txt WA 11 ms 8884 KiB
hand_07.txt WA 12 ms 8896 KiB
hand_08.txt WA 12 ms 8820 KiB
random_01.txt AC 11 ms 8880 KiB
random_02.txt AC 12 ms 9208 KiB
random_03.txt AC 11 ms 8888 KiB
random_04.txt AC 12 ms 9168 KiB
random_05.txt AC 12 ms 8788 KiB
random_06.txt AC 11 ms 9060 KiB
random_07.txt AC 11 ms 8568 KiB
random_08.txt AC 12 ms 9224 KiB
random_09.txt AC 11 ms 8692 KiB
random_10.txt AC 12 ms 9276 KiB
random_11.txt AC 11 ms 8900 KiB
random_12.txt AC 12 ms 9108 KiB
random_13.txt AC 12 ms 8996 KiB
random_14.txt AC 12 ms 9140 KiB
random_15.txt AC 12 ms 9032 KiB
random_16.txt AC 11 ms 8940 KiB
random_17.txt AC 13 ms 9396 KiB
random_18.txt AC 13 ms 9380 KiB
random_19.txt AC 13 ms 9396 KiB
random_20.txt AC 13 ms 9264 KiB
random_21.txt AC 12 ms 9132 KiB
random_22.txt AC 12 ms 8888 KiB
sample_01.txt AC 11 ms 8816 KiB
sample_02.txt AC 11 ms 8888 KiB
sample_03.txt AC 12 ms 8792 KiB


2025-06-16 (Mon)
02:57:13 +09:00