AtCoder Beginner Contest 240 F問題 Sum Sum Max
問題
提出解答
問題の概要
長さが の整数列 がある. これらはそれぞれ以下で与えられる.
- の最初の 項は , 続く 項は 最後の 項は
- は の累積和
- は の累積和
このとき, を求めよ.
制約
解法
整数列 をそれぞれ 項, 項, 項で分割する. 分割した各列を とすると,
- は定数列
- は等差列
- の一般項は の2次式で表される.
であることがわかる. 以降, 初項は第 項であるとし, とする.
について考える. 実関数 を考えることにより, における の最大値は
- のとき, .
- のとき, ならば, , そうでなければ
である.
ただし, は整数なので, のとき, 基本的には
である (引数が範囲外のときに注意).
このことに注意し, の各項を求め, の最大値を求め, 統合することにより, 計算量 で解くことができる.