ARC174 に参戦.問題Aのみ AC.
- パフォーマンス:785
- レーティング:52 (初)
問題A - A Multiply (300 点)
【問題ページ】 Difficulty: 467
問題の概要
長さ の整数列 と整数 が与えられ,以下の操作を高々1回行うときの の総和の最大値を求める.
- を満たす を指定し, の全ての要素を 倍する.
制約条件
解き方
区間和最大・最小,という頻出?テーマ.
についての if 文の条件式で の場合が漏れていて 1WA 出してしまった.イージーミス,もったいない.
以下,AC コード (Python).
n, c = map(int, input().split()) a = list(map(int, input().split())) s = sum(a) mss, x = 0, 0 if c <= 0: a = [-a[i] for i in range(n)] for i in range(n): x += a[i] if x < 0: x = 0 if x > mss: mss = x if c <= 0: print(s + mss - mss * c) else: print(s - mss + mss * c)
次回はもっと注意してコード提出しよう.
Best regards, e271828.