AtCoder Daily Training EASY 2024/03/07 20:30start
- A - Median?
https://atcoder.jp/contests/adt_easy_20240307_3/tasks/abc253_a
- 提出: https://atcoder.jp/contests/adt_easy_20240307_3/submissions/50976729
- ソートして中央の値と b を比較して一致していれば Yes
- B - Weak Beats
https://atcoder.jp/contests/adt_easy_20240307_3/tasks/abc323_a
- 提出: https://atcoder.jp/contests/adt_easy_20240307_3/submissions/50976776
- 2..=16 を 1 個飛ばしで読んですべて '0' なら Yes
- C - Hard Calculation
https://atcoder.jp/contests/adt_easy_20240307_3/tasks/abc229_b
- 提出: https://atcoder.jp/contests/adt_easy_20240307_3/submissions/50976865
- 下の桁から順に、足してみてすべて 10 未満なら Easy
- D - CTZ
https://atcoder.jp/contests/adt_easy_20240307_3/tasks/abc336_b
- 提出: https://atcoder.jp/contests/adt_easy_20240307_3/submissions/50976896
n.trailing_zeros()
- E - Ameba
https://atcoder.jp/contests/adt_easy_20240307_3/tasks/abc274_c
- 提出: https://atcoder.jp/contests/adt_easy_20240307_3/submissions/50977421
- 頂点ごとの辺を保持しておき、 a を走査して辺を張っていく
- 最後に DFS で深さを調べて、それらを出力する
use proconio::input; fn dfs(edges: &[Vec<usize>], depth: &mut Vec<usize>, u: usize, p: usize, l: usize) { depth[u] = l; for v in edges[u].iter().copied() { if v == p { continue; } dfs(edges, depth, v, u, l + 1); } } fn main() { input! { n: usize, a: [usize; n], }; let mut edges = vec![vec![]; 4 * n]; for (i, a_i) in a.iter().copied().enumerate() { let i = i + 1; edges[a_i].push(2 * i); edges[2 * i].push(a_i); edges[a_i].push(2 * i + 1); edges[2 * i + 1].push(a_i); } let mut depth = vec![0; 4 * n]; dfs(&edges, &mut depth, 1, 1, 0); for k in 1..=2 * n + 1 { println!("{}", depth[k]); } }
今日のコミット。
- firestore-path 2 commits
- serde-firestore-value 2 commits
- rust-atcoder 1 commit