bouzuya/serde-firestore-value 0.1.0, 0.1.1 をつくった。
Firestore の Value を crates:serde の data format とする (de)serilizer 。
Firestore への読み書きをするときに Value { value_type: Some(ValueType::...) }
を書くのが大変なので、書いてみた。他にも類似の crate はあるだろうけど serde の理解を深めるためにも書いてみた。
deserialize / deserializer / serialize / serializer / data model / data format の関係はだいたい把握したつもり。まだ雰囲気で書いているところがあるので怪しいけど。
serde data model の範囲からはみ出す値をどう扱うのかよく分からなかった。たとえば timestamp を timestampValue という特殊な形式で serialize したい場合にそれを serde data model にどう落とし込めば良いのか分からない。おそらく struct name で判断するのだろうけど……。そこで判断していいのか迷う。
一段落。実際に使ってみて手直ししたい。
PAST#13 第13回 アルゴリズム実技検定 過去問
- C - 三つ組の積
https://atcoder.jp/contests/past202212-open/tasks/past202212_c
- 提出: https://atcoder.jp/contests/past202212-open/submissions/45991888
N <= 100
なので素朴に 3 重ループを書いて試せば良い
use std::collections::HashSet; use proconio::input; fn main() { input! { n: usize, a: [usize; n], }; let mut set = HashSet::new(); for i in 0..n { for j in i + 1..n { for k in j + 1..n { set.insert(a[i] * a[j] * a[k]); } } } let ans = set.len(); println!("{}", ans); }
今日のコミット。