blog.bouzuya.net

2023-01-18 ABC038 の A, B, C, D を解いた

ABC038 : AtCoder Beginner Contest 038 の A, B, C, D を解いた。

use std::cmp::Reverse;

use proconio::input;
use segtree::*;

fn main() {
    input! {
        n: usize,
        mut wh: [(usize, usize); n],
    };
    wh.sort_by_key(|&(w, h)| (w, Reverse(h)));

    let mut st = Segtree::<Max<usize>>::new(100_000 + 1);
    for (_, h) in wh.into_iter() {
        st.set(h, st.prod(0, h) + 1);
    }
    let ans = st.all_prod();
    println!("{}", ans);
}

// segtree

今日のコミット。