【ABC181 B】「Trapezoid Sum」を解く【Python3】

コンテスト一覧へ

 

高橋くんがN回の操作を終えたときの、すべての整数の合計値を求める問題です。

提出
n = int(input())
ans = 0
for i in range(n):
    a, b = map(int, input().split())
    ans += (a+b)*(b-a+1)//2
print(ans)

A以上B以下のすべての整数の和は、「(A+B)×(B-A+1)/2」で求めることができます。

最後の出力を整数にしたいので、プログラム内では切り捨て演算子を使っています。

代わりに「int()」を用いても問題ありません。

この整数の和をN回分足していくことで、答えを求めることができます。

split()メソッド

split()メソッドは、区切り文字を指定して、文字列を分割します。

区切り文字を指定しない場合、空白、タブ、改行で分割されます。

str.split(区切り文字)
map()関数

map()関数は、配列内のすべての要素に関数の処理を適用します。

map(関数、配列)

【ABC181】解説記事リスト

コンテスト一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。