bouzuya.hatenablog.com

ぼうずやのにっき

bouzuya/serde-firestore-value 0.3.0 をつくった / PAST #2 F

bouzuya/serde-firestore-value を 0.3.0 にした。

  • Option<chrono::DateTime<chrono::Utc>> の with の mod を追加した
  • Option<time::OffsetDateTime> の with の mod を追加した

いくつかの doctest を追加している。テストが重複コードになっており、どうしたものだろう。ドキュメントの Examples はほしい (がテストの実行速度が遅い) 。 0.3.0 での CHANGELOG 代わりのテストもほしい (が重複する) 。難しい。


TODO の多くを捨てた。思い切って捨ててみようと思った。積んでいてもどうせ処理できないなら積まないほうが良いかもしれないので試しに消してみる。本棚から本を捨てる気持ち。


風邪っぽい。鼻水が出てのどがおかしい。


PAST #2 第二回 アルゴリズム実技検定 過去問

use std::collections::BTreeMap;

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

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

    ab.sort();
    let mut index = 0_usize;
    let mut map = BTreeMap::new();
    let mut sum = 0_usize;
    for k in 0..n {
        while index < ab.len() && ab[index].0 <= k {
            *map.entry(ab[index].1).or_insert(0) += 1;
            index += 1;
        }

        let max = *map.keys().next_back().unwrap();
        let count = map.get_mut(&max).unwrap();
        *count -= 1;
        if *count == 0 {
            map.remove(&max);
        }
        sum += max;
        println!("{}", sum);
    }
}

今日のコミット。