Submission #40944118


Source Code Expand

use std::collections::{HashSet, VecDeque};

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

macro_rules! chmax {
    ($max_v: expr, $v: expr) => {
        if $v > $max_v {
            $max_v = $v;
            true
        } else {
            false
        }
    };
}

fn main() {
    input! {
        n: usize,
        m: usize,
        xy: [(Usize1, Usize1); m],
    }

    let mut edges = vec![HashSet::new(); n];
    let mut redges = vec![HashSet::new(); n];
    for (x, y) in xy {
        edges[x].insert(y);
        redges[y].insert(x);
    }

    let mut deque = VecDeque::new();
    for (i, e) in edges.iter().enumerate() {
        if e.is_empty() {
            deque.push_back(i);
        }
    }
    let mut dp = vec![0_usize; n];
    while let Some(v) = deque.pop_front() {
        for u in redges[v].iter().copied() {
            chmax!(dp[u], dp[v] + 1);
            edges[u].remove(&v);
            if edges[u].is_empty() {
                deque.push_back(u);
            }
        }
    }
    let ans = dp.iter().copied().max().unwrap();
    println!("{}", ans);
}

Submission Info

Submission Time
Task G - Longest Path
User bouzuya
Language Rust (1.42.0)
Score 100
Code Size 1072 Byte
Status AC
Exec Time 121 ms
Memory 24988 KiB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 22
Set Name Test Cases
All 0_00, 0_01, 0_02, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17, 1_18
Case Name Status Exec Time Memory
0_00 AC 7 ms 2128 KiB
0_01 AC 1 ms 2120 KiB
0_02 AC 2 ms 2044 KiB
1_00 AC 3 ms 2108 KiB
1_01 AC 121 ms 24988 KiB
1_02 AC 37 ms 7344 KiB
1_03 AC 94 ms 21924 KiB
1_04 AC 74 ms 15296 KiB
1_05 AC 58 ms 11720 KiB
1_06 AC 52 ms 9780 KiB
1_07 AC 44 ms 8796 KiB
1_08 AC 41 ms 8308 KiB
1_09 AC 39 ms 7996 KiB
1_10 AC 37 ms 7556 KiB
1_11 AC 53 ms 10572 KiB
1_12 AC 104 ms 21764 KiB
1_13 AC 89 ms 18356 KiB
1_14 AC 56 ms 11420 KiB
1_15 AC 53 ms 10332 KiB
1_16 AC 84 ms 17356 KiB
1_17 AC 111 ms 23092 KiB
1_18 AC 69 ms 14296 KiB