AtCoder ABC 099 B – Stone Monument Python解説

スポンサーリンク

Stone Monument

ある村には、高さ 1,(1+2),(1+2+3),…,(1+2+3+…+999)メートルの 999 本の塔が、西から順に 1 メートル間隔で立っています。

長く降り続けた雪がようやく収まったので、まだ雪に完全には埋もれていない、互いに 1 メートル離れたある 2 つの塔の、雪に埋もれていない部分の高さを測ったところ、西側の塔は a メートル、東側の塔は b メートルでした。

積雪量と標高が村内のどこでも等しいと仮定したとき、雪が何メートル積もっているか求めてください。
ただし、雪は必ず 1 メートル以上積もっているものとします。

AtCoder Beginner Contest 「Stone Monument」

今回の問題では、塔の高さは等差数列になっているので、隣り合った2つの塔の高さの差を使って問題を解いていきましょう。

a, b = map(int, input().split())

d = b - a

h = 0

for i in range(1, d + 1):
    h += i
    
print(h - b)

2つの塔aとbの差分をdとします。塔の高さはiずつ増えていくので、for文を使いd+1までループを回すことで、本来のbの塔の高さ(h)を得ることができます。

AtCoderB問題

Posted by cheese