2023-09-27 bouzuya/serde-firestore-value 0.1.0, 0.1.1 をつくった
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);
}
今日のコミット。