12/21 ABC385-C(21日目)

20日目の記事に戻る

こんにちは、ゆーてぃーです。今回は「ゆーてぃーのAtCoder精進【21日目】」ということで、2024年12月21日に行われたABC385のC問題を解きたいと思います。

ゆーてぃーのAtCoder精進 Advent Calendar 2025

問題

C - Illuminate Buildings

問題ページ

問題文

 N棟のビルが等間隔に一列に並んでいます。手前から i番目のビルの高さは H_i​です。

あなたは次の条件をともに満たすようにいくつかのビルを選んで電飾で飾ろうとしています。

  • 選んだビルたちは高さが等しい
  • 選んだビルたちは等間隔に並んでいる

最大でいくつのビルを選ぶことができますか? なお、ちょうど1 つのビルを選んだときは条件を満たすとみなします。

制約

  •  1 \leqq N \leqq 3000
  •  1 \leqq H_i \leqq 3000
  • 入力は全て整数である

入力

入力は以下の形式で標準入力から与えられる。

 N

 H_1\ ...\ H_N

出力

答えを出力せよ。

ゆーてぃーの解法

 Nが小さいので全探索をします。具体的には 1 \sim \frac{N}{2}+1の間隔を保ち、開始地点をずらして調べていきます。同じ高さが続いていたらカウントを増やし、異なる高さになったらカウントを0にして再開します。カウントの最大値が答えになります。

感想など

計算量が[O (N ^ 3)]くらいになると思いましたが実装してみたら[O (N2)]くらいになったので助かりました。

提出コード

22日目の記事へ進む