提出 #57058599


ソースコード 拡げる

use proconio::{input, marker::Usize1};

fn main() {
    input! {
        n: usize,
        k: usize,
        ab: [(Usize1, Usize1); n - 1],
        v: [Usize1; k],
    }

    let r = v[0];
    let g = {
        let mut g = vec![vec![]; n];
        for &(a, b) in &ab {
            g[a].push(b);
            g[b].push(a);
        }
        g
    };

    let par = par(&g, r);
    let mut used = vec![false; n];
    for &v in &v {
        for u in std::iter::successors(Some(v), |&v| (v < n).then(|| par[v]))
            .take_while(|&u| u < n)
        {
            if used[u] {
                break;
            }
            used[u] = true;
        }
    }
    let res = used.iter().filter(|&&u| u).count();
    println!("{res}");
}

fn par(g: &[Vec<usize>], r: usize) -> Vec<usize> {
    fn dfs(g: &[Vec<usize>], v: usize, pv: usize, par: &mut [usize]) {
        for &nv in g[v].iter().filter(|&&nv| nv != pv) {
            par[nv] = v;
            dfs(g, nv, v, par);
        }
    }
    let n = g.len();
    let mut res = vec![n; n];
    dfs(g, r, n, &mut res);
    res
}

提出情報

提出日時
問題 D - Minimum Steiner Tree
ユーザ rsk0315
言語 Rust (rustc 1.70.0)
得点 425
コード長 1125 Byte
結果 AC
実行時間 81 ms
メモリ 33784 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 425 / 425
結果
AC × 3
AC × 37
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All min.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, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt, random_30.txt, random_31.txt, random_32.txt, random_33.txt, sample_01.txt, sample_02.txt, sample_03.txt
ケース名 結果 実行時間 メモリ
min.txt AC 1 ms 1872 KiB
random_01.txt AC 51 ms 23404 KiB
random_02.txt AC 54 ms 23548 KiB
random_03.txt AC 81 ms 33784 KiB
random_04.txt AC 81 ms 32176 KiB
random_05.txt AC 39 ms 25224 KiB
random_06.txt AC 41 ms 24900 KiB
random_07.txt AC 43 ms 25000 KiB
random_08.txt AC 48 ms 24896 KiB
random_09.txt AC 71 ms 23572 KiB
random_10.txt AC 73 ms 23372 KiB
random_11.txt AC 45 ms 24704 KiB
random_12.txt AC 48 ms 25280 KiB
random_13.txt AC 44 ms 26164 KiB
random_14.txt AC 2 ms 3132 KiB
random_15.txt AC 2 ms 2996 KiB
random_16.txt AC 16 ms 10300 KiB
random_17.txt AC 50 ms 22148 KiB
random_18.txt AC 16 ms 10564 KiB
random_19.txt AC 47 ms 21016 KiB
random_20.txt AC 37 ms 19748 KiB
random_21.txt AC 31 ms 17412 KiB
random_22.txt AC 38 ms 19832 KiB
random_23.txt AC 26 ms 15676 KiB
random_24.txt AC 46 ms 23568 KiB
random_25.txt AC 41 ms 23716 KiB
random_26.txt AC 44 ms 23684 KiB
random_27.txt AC 44 ms 23780 KiB
random_28.txt AC 45 ms 23744 KiB
random_29.txt AC 7 ms 6156 KiB
random_30.txt AC 4 ms 4068 KiB
random_31.txt AC 12 ms 9036 KiB
random_32.txt AC 7 ms 6176 KiB
random_33.txt AC 45 ms 21508 KiB
sample_01.txt AC 1 ms 1848 KiB
sample_02.txt AC 1 ms 1944 KiB
sample_03.txt AC 1 ms 2076 KiB