AtCoder Talent Quest 〜 今から28卒には脱出してもらいます〜予選 #2(AtCoder Beginner Contest 480) コンテストまとめ
謎の脱出ゲーム予選2回目。
また、今回からアルゴ部門における競技ルールに変更があったらしい。

AtCoder生成AI対策ルール - 20261014版 - AtCoderInfo
はじめに このルールは、AtCoder Beginner Contest(以下、ABCとする)、(Division によらず)AtCoder Regular Contest(以下、ARCとする)およびAtCoder Grand Contest(以下、AGCとする)の開催中にのみ適用されるルールです。 AtCoder Heuristic Contestはこのルールの対象外であり、代わりにこちらのルールが適用されます。また、過去問を練習している際には適用されません。ABC,ARC,AGCの開催中においては、Unrated参加者にも適用されます。今回発表するルールは、2026年10月現在の生成AIの…
AtCoderInfo
コンテスト開始前にあらかじめ生成AIを用いて作成しておいたコードの使用は、上記の事前公開および参照URLの添付に関する条件を満たす場合に許容されます。

AtCoder Beginner Contest 480 - AtCoder
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
AtCoder
コンテスト時間: 2026-10-17(土) 21:00 ~ 2026-10-17(土) 22:40 (100分)
- Difficulty: 35 / NoviSteps: 6Q / 解答時間: 3:44
2×2 のグリッドがある。
グリッドの各マスにはA, B, C, Dのいずれかがちょうど 1 つ書かれており、4 マスに書かれている文字は相異なる。
Aが書かれたマスとDが書かれたマスが隣接しているかどうかを判定せよ。
- 以下の場合は条件を満たさないので
Noを出力する。それ以外はYesを出力すればよい。
- 左上が
Aで右下がD
- 右上が
Aで左下がD
- 左上が
Dで右下がA
- 右上が
Dで左下がA

ABC 480 A - ADjacent
ABC 480 A - ADjacent の考察記事です。
Yuulis I/O
- Difficulty: 201 / NoviSteps: 5Q / 解答時間: 9:22
選挙に N 人の候補者が立候補している。
各候補者の名前は英小文字からなり、互いに異なる。
M 枚の投票用紙が投じられ、投票用紙 j には英小文字からなる文字列 Tj が書かれていた。
Tj が名前に完全に一致している候補者がいる場合、その候補者に 1 票が入る。
そうでなく、Tj を 1 文字書き換えて名前が一致するような候補者がちょうど 1 人いる場合、その候補者に 1 票が入る。
そうでない場合、それは無効票となる。
i=1,2,…,N について、候補者 i に何票入るかを求めよ。
- 基本的には言われたことをやるだけだが、B問題にしては重めな実装が要求される。

ABC 480 B - Invalid Vote
ABC 480 B - Invalid Vote の考察記事です。
Yuulis I/O
- Difficulty: 625 / NoviSteps: 2Q / 解答時間: 8:38
あるシャワーでは、時刻 t にボタンを押すと時刻 t から時刻 t+K までの K 秒間お湯が出る。
お湯が出ているときに再びボタンを押した場合も、最後にボタンを押した時刻から K 秒間お湯が出る。
N 人の青木君がいて、i 人目の青木君は時刻 Ai にボタンを 1 回押す。
時刻 0 から時刻 T までの間に常にお湯が出ているようにするために、高橋君は最小で何回ボタンを押す必要があるかを求めよ。
- お湯が出ている時間を区間として考え、重なる区間をmergeする。
- その後、区間 [0,T] でまだ覆われていない区間の長さをそれぞれ d とすれば、その区間に対して ⌈Kd⌉ 回ボタンを押す必要がある。
- これをすべての区間に対して行い、合計すればよい。
- Ai の昇順にソートし、左から順に処理していく。
サンプルケースでは、Ai がソートされていないケースや、 maxAi>T のケースがなくて優しくない。

ABC 480 C - Self-Stopping Shower
ABC 480 C - Self-Stopping Shower の考察記事です。
Yuulis I/O
- Difficulty: 864 / NoviSteps: 1Q / 解答時間: 30:41 + WA x1
長さ N の整数列 (A1,…,AN) が与えられる。
以下の手順で長さ 2N(N+1) の数列 B を作る。
- 最初、 B を空列とする。
- i=1,2,…,N の順に、B の末尾に (A1,…,Ai) を連結する。
以下の形式のクエリが Q 個与えられるので、それぞれ処理せよ。
- L,R が与えられる。BL+BL+1+⋯+BR を求めよ。
- Gi=(A1,A2,…,Ai) とすると、Gi の末尾の項は B の Ci=2i(i+1) 番目に現れる。
- f(x)=∑i=1xBi とおけば、各クエリでは f(R)−f(L−1) を計算すればよい。
- x が Gk に含まれる要素であるとすると、 k=min{i∣Ci≥x} と定義できるから、これは二分探索で求めることができる。
- すると、Gk より前にある要素の個数は Ck−1 個なので、要素 x の Gk の中での位置は x−Ck−1 と表せる。
- したがって、 f(x)=Tk−1+Sx−Ck−1 と書くことができる。ただし、
- Si=∑j=1iAj,Ti=∑j=1iSj

ABC 480 D - Concatenation of Prefixes
ABC 480 D - Concatenation of Prefixes の考察記事です。
Yuulis I/O
- Difficulty: 1355 / NoviSteps: 1D / 解答時間: 37:54
以下の条件を全て満たす正整数列 A=(A1,…,A∣A∣) を良い数列と定める。
- ∣A∣≥3
- A は等差数列である。
- A2−A1>0
良い数列のうち、要素の総積が N 以下であるものの個数を求めよ。
- 長さ k の数列に対して、初項 a の探索範囲は 1≤a≤kN であり、a を固定すれば二分探索で条件を満たす最大の公差 d を求めることができる。
- また、初項・公差がともに 1 の場合が積を最小にするので、k!≤N を満たす k だけ調べれば十分。
- 20!≈2.43×1018 なので、 k<20 まで調べればよい。
- 長さ k の数列について、初項は高々 Nk1 通り、二分探索は O(logN) 回、それぞれの判定に O(k) 時間がかかるから、全体としては、O(∑k=320kNk1logN)=O(N31logN) の計算量となる。

ABC 480 E - Product-Bounded Arithmetic Sequences
ABC 480 E - Product-Bounded Arithmetic Sequences の考察記事です。
Yuulis I/O

Contest Result - AtCoder
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
AtCoder
- 順位: 1474th / 11368
- Performance: 1480
- 1399 → 1407 (+8)
A, B問題が意外と難しくて焦ったが、E問題が割とすんなり解けてセーフ。