2023-01-27 ABC052 の A, B, C, D を解いた
ABC052 : AtCoder Beginner Contest 052 の A, B, C, D を解いた。
- A - Two Rectangles
https://atcoder.jp/contests/abc052/tasks/abc052_a
- 提出: https://atcoder.jp/contests/abc052/submissions/38356197
(a * b).max(c * d)
- B - Increment Decrement
https://atcoder.jp/contests/abc052/tasks/abc052_b
- 提出: https://atcoder.jp/contests/abc052/submissions/38356275
- 前から順に走査し、問題文通りに計算し、最大値を更新していけば良い
- C - Factors of Factorial
https://atcoder.jp/contests/abc052/tasks/arc067_a
- 提出: https://atcoder.jp/contests/abc052/submissions/38356843
- N! を素因数分解して各素因数の肩にのっている数字+1をかけたものが答えになるの
- 1..=N の各要素について素因数分解しながら数を数えておき
- 最後にそれらを +1 したものをかけあわせれば良い
- D - Walk and Teleport
https://atcoder.jp/contests/abc052/tasks/arc067_b
- 提出: https://atcoder.jp/contests/abc052/submissions/38356926
- 貪欲法で次の場所までの移動がどちらが小さいかを計算すれば良い
use proconio::input;
fn main() {
input! {
n: usize,
a: usize,
b: usize,
x: [usize; n],
};
let mut sum = 0_usize;
for i in 1..n {
let d = x[i] - x[i - 1];
sum += (d * a).min(b);
}
let ans = sum;
println!("{}", ans);
}
疲れている。
今日のコミット。
- rust-sandbox 1 commit
- rust-atcoder 1 commit