ABC310 に参加した。 1267 → 1267 (±0) 。 D 問題で変にハマって飛ばしたものの、 E を解けず、戻ってきて時間ギリギリで D を解いた。
https://atcoder.jp/users/bouzuya/history/share/abc310
うーん……。
『水星の魔女』を観た。
- 列 (AtCoder Beginner Contest 032:C問題)
https://atcoder.jp/contests/abc032/tasks/abc032_c
- https://atcoder.jp/contests/abc032/submissions/43566108
- 尺取り法
l
r
をそれぞれ保持して[l, r)
の積がK
以下かを判定しr - l + 1
の最大を求める0
がS
に含まれる場合は答えがN
になる点に注意- ↑の考慮を忘れると
0
除算が起きる
use proconio::input; fn main() { input! { n: usize, k: usize, s: [usize; n], }; if s.iter().any(|&s_i| s_i == 0) { println!("{}", n); return; } let mut product = 1_usize; let mut max = 0_usize; let mut r = 0; for l in 0..n { while (r < n) && (product.checked_mul(s[r]).is_some() && product * s[r] <= k) { product *= s[r]; r += 1; } max = max.max(r - l); if r == l { r += 1; } else { product /= s[l]; } } let ans = max; println!("{}", ans); }
今日のコミット。