問題
$ 1, (1+2), (1+2+3), \ldots, (1+2+3 \ldots +999)$と999本立っている鉄塔のうち、隣り合う2塔(西側と東側)の雪に埋まって見えている部分の高さが$a, b$として与えられたときに、雪が何メートル積もっているかを求める問題。
方針
- $b-a$が隣り合う鉄塔の高さの差分$h$を表現しており、これにより西側の鉄塔の高さが$1+2+3+ \ldots + h-1$であるとわかる
- $1+2+3 \ldots + h-1$を求めて、$a$を引くと雪の積もっている高さがわかる
a, b = map(int, input().split())
diff_ = b - a
pos1 = sum([i for i in range(1, diff_)])
print(pos1 - a)
追記
@konandoiruasa にコメントいただいたので、追記。
方針2.で$1+2+3+ \ldots + h-1$を求めるのに、sum()
を用いて求めていたが、
初項$1$、末項$h-1$、項数$h-1$の等差数列の和の公式で求めることができる。
pos1 = h*(h-1) / 2