2023-07-17 ストライダー→自転車 / Let's Split などを捨てた / ABC229 D を解いた
上の子がおおむね自転車に乗れたので、下の子のストライダーに着手している。
上の子のストライダー→自転車で思うことはストライダーにはブレーキをつけたほうが良いということ。理由は自転車に移行した際に足で止めようとしてしまい危ないので。
左右へのバランス感覚はつくのだけどペダルとブレーキがまったくできない状態での自転車デビューになる。ペダルが足の動きの邪魔なので最初に着手することになる。ブレーキに慣れていない状態でペダルによって足で地面を蹴っていたときよりも加速した状態から止まることが要求されてしまう。足でそれを止めようとするので危ない。自転車から入るとブレーキ→左右に傾く→足で支えるという発想になるはずだけどストライダーから入ると足で止めに行こうとする。
ちなみにペダルの練習時も最初の加速は足で地面を蹴って加速していた。自分がどうだったかはさだかではないけどペダルを前後にパタパタやっていた気がする。どこから入ったかで違うんだろうなと思った。
ちなみに下の子のストライダーのほうはまだほとんど動けず固まってしまうレベル。押してあげるとハンドル操作くらいは……という感じ。
キーボードをいくつか捨てた。 Let's Split と Nyquist と MiniDox を廃棄した。 Corne Cherry と Corne Chocolate を残してほかはすべて廃棄した状態にした。とにかく場所がない。
使わないものは思い切って捨てる。
- Longest X (AtCoder Beginner Contest 229:D問題)
https://atcoder.jp/contests/abc229/tasks/abc229_d
- https://atcoder.jp/contests/abc229/submissions/43680868
- 尺取り法
- 書籍の章の位置付けから尺取り法で解いたのだけど、たぶん普段なら累積和 + 二分探索で解く
- 累積和の提出 https://atcoder.jp/contests/abc229/submissions/27530524
use proconio::{input, marker::Chars};
fn main() {
input! {
s: Chars,
k: usize,
};
let n = s.len();
let mut max = 0_usize;
let mut count = 0_usize;
let mut r = 0_usize;
for l in 0..n {
while (r < n) && ((s[r] == 'X') || (s[r] == '.' && count < k)) {
count += if s[r] == '.' { 1 } else { 0 };
r += 1;
}
max = max.max(r - l);
if r == l {
r += 1;
} else {
if s[l] == '.' {
count -= 1;
}
}
}
let ans = max;
println!("{}", ans);
}
今日のコミット。