🥶
JavaScriptでABC429(A-C + D)
A - Too Many Requests
- うんうん、iを回しながら都度判断すればいいんだね、簡単だね
- → WA
- → ……?あれ、三項って比較より優先度高いっけ
- → なんかコードテスト調子悪いな、出しちゃえ
- → WA
- → ……??あーまって
iとN間違えてる - → WA
- → ……???
このあとCまで片付けたところで見直してたら気づきました

スペルミスには気をつけよう!!あとちゃんとコードテストをしなさい!!!!
23分19秒 AC!(3ペナ)
B - N - 1
Bは愚直……愚直か?これ
全部の合計を求めると「Mにするために消したい値」がわかるので、それが存在するかチェック
6分49秒 AC!
C - Odd One Subsequence
何が何個あるか数えればそれぞれの整数について「それを2個選ぶ場合の数 × 残り1個を選べる個数」が出せて、足すだけ
18分05秒 AC!
Perfomance
- perf : 551
- レート変化 : 873 → 844 (-29)
Upsolve
あの……あの……
D - On AtCoder Conference
- めんどいからAを3周に伸ばします
- ランレングス圧縮をします
- 各集団について、以下2つを求めます
- 「その人達が第一村人のとき高橋君が何人に出会うか」
- 人数の累積和を作っておくと二分探索で止まる場所も出会う人数も求まります
- 二分探索、私は
lower_bound()を持っています 作りましょう
- 「その人達が第一村人な
iの数」- この集団の地点 - 前の集団の地点 + 1です
- 「その人達が第一村人のとき高橋君が何人に出会うか」
- それを全部足すと答えになります
WA……あれ……??
その後も色々試すもうまくいかず……
時間切れ直前に思いました。これ、答えは
……
- let sum = 0;
+ let sum = 0n;
- sum += X_ifFirstIsTargetGroup * i_count;
+ sum += BigInt(X_ifFirstIsTargetGroup) * BigInt(i_count);
- console.log(sum);
+ console.log(sum.toString());
最悪だ!!BigIntにしたら通った!!!!
2025-10-25 22:41:46 AC
感想
あの、過去一カスみたいなミスで本当に終わりです せめて笑ってください
今後どうするかを考えましょう
D(BigInt忘れ)は丁寧にチェックするとして、Aはローカルテスト環境を用意すれば仕組みで解決できますね!!
ということでこれを機にローカルテスト環境を作成します……
過去のABCも似たような記事を書いています。よければそちらもどうぞ。
| xx1 | xx2 | xx3 | xx4 | xx5 | xx6 | xx7 | xx8 | xx9 | xx0 | |
|---|---|---|---|---|---|---|---|---|---|---|
| 40x | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | |
| 41x | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 |
| 42x | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 |
Discussion