Submission #66753087


Source Code Expand

Copy
use proconio::{input, marker::Usize1};
fn main() {
input! {
n: usize,
m: usize,
abw: [(Usize1, Usize1, u32); m],
}
let mut g = vec![vec![]; n];
for (a, b, w) in abw {
g[a].push((b, w));
g[b].push((a, w));
}
let mut dfs = vec![0];
let mut dist = vec![!0; n];
dist[0] = 0;
while let Some(u) = dfs.pop() {
for &(v, w) in &g[u] {
if dist[v] == !0 {
dist[v] = dist[u] ^ w;
dfs.push(v);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
use proconio::{input, marker::Usize1};

fn main() {
    input! {
        n: usize,
        m: usize,
        abw: [(Usize1, Usize1, u32); m],
    }
    let mut g = vec![vec![]; n];
    for (a, b, w) in abw {
        g[a].push((b, w));
        g[b].push((a, w));
    }
    let mut dfs = vec![0];
    let mut dist = vec![!0; n];
    dist[0] = 0;
    while let Some(u) = dfs.pop() {
        for &(v, w) in &g[u] {
            if dist[v] == !0 {
                dist[v] = dist[u] ^ w;
                dfs.push(v);
            }
        }
    }
    if dist[n - 1] == !0 {
        println!("-1");
        return;
    }
    let path = dist[n - 1];
    let mut cycle = vec![];
    let mut seen = vec![false; n];
    for u in 0..n {
        if seen[u] || dist[u] == !0 {
            continue;
        }
        let mut dfs = vec![u];
        seen[u] = true;
        while let Some(u) = dfs.pop() {
            for &(v, w) in &g[u] {
                if seen[v] {
                    if dist[u] != !0 && dist[v] != !0 && dist[u] ^ dist[v] ^ w != 0 {
                        cycle.push(dist[u] ^ dist[v] ^ w);
                    }
                    continue;
                }
                dfs.push(v);
                seen[v] = true;
            }
        }
    }
    let mut basis = vec![];
    for cycle in cycle {
        let mut tmp = cycle;
        for &b in &basis {
            tmp = tmp.min(tmp ^ b);
        }
        if tmp != 0 {
            basis.push(tmp);
        }
    }
    let mut ans = path;
    for i in 0..1 << basis.len() {
        let mut tmp = path;
        for (j, &b) in basis.iter().enumerate() {
            if i >> j & 1 == 1 {
                tmp ^= b;
            }
        }
        ans = ans.min(tmp);
    }
    println!("{}", ans);
}

Submission Info

Submission Time
Task D - XOR Shortest Walk
User hayatroid
Language Rust (rustc 1.70.0)
Score 0
Code Size 1762 Byte
Status WA
Exec Time 1 ms
Memory 2208 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 400
Status
AC × 3
AC × 28
WA × 5
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 1 ms 1920 KiB
hand_02.txt AC 1 ms 2084 KiB
hand_03.txt WA 1 ms 1864 KiB
hand_04.txt AC 1 ms 1948 KiB
hand_05.txt WA 1 ms 1904 KiB
hand_06.txt WA 1 ms 1868 KiB
hand_07.txt WA 1 ms 1872 KiB
hand_08.txt WA 1 ms 1888 KiB
random_01.txt AC 1 ms 1952 KiB
random_02.txt AC 1 ms 1988 KiB
random_03.txt AC 1 ms 1940 KiB
random_04.txt AC 1 ms 1988 KiB
random_05.txt AC 1 ms 2076 KiB
random_06.txt AC 1 ms 1896 KiB
random_07.txt AC 1 ms 1908 KiB
random_08.txt AC 1 ms 1944 KiB
random_09.txt AC 1 ms 1928 KiB
random_10.txt AC 1 ms 2092 KiB
random_11.txt AC 1 ms 1976 KiB
random_12.txt AC 1 ms 2172 KiB
random_13.txt AC 1 ms 1904 KiB
random_14.txt AC 1 ms 2140 KiB
random_15.txt AC 1 ms 2092 KiB
random_16.txt AC 1 ms 1972 KiB
random_17.txt AC 1 ms 2108 KiB
random_18.txt AC 1 ms 1996 KiB
random_19.txt AC 1 ms 2208 KiB
random_20.txt AC 1 ms 2100 KiB
random_21.txt AC 1 ms 2108 KiB
random_22.txt AC 1 ms 2036 KiB
sample_01.txt AC 1 ms 1888 KiB
sample_02.txt AC 1 ms 1940 KiB
sample_03.txt AC 1 ms 1968 KiB


2025-06-16 (Mon)
01:46:37 +09:00