srupのメモ帳

競プロで解いた問題や勉強したことを記録していくメモ帳

yukicoder No.71 そろばん

問題

問題概要

そろばんの一列でいくつ数得られる?

解法

そろばんの上の玉がy、下がxとすると、数得られる数は、
(x + 1)y + x -(1) という式で表されて、
条件から、 x + y = n -(2) という式も導かれるので、
yを消去すると求める答えは、下の式が最大となる時である。
(x + 1)(n - x) + x = -x2 + xn + n 

ミス

特になし

コード

n = input()

ans = 0
for x in range(1, n + 1):
    now = -(x * x) + (x * n) + n
    ans = max(ans, now)
print ans