競技プログラミングをpythonで遊ぶ5[ABC97 A]

コンテストページはこちら↓

問題文
数直線上にいるAさんとBさんとCさんがトランシーバーで会話をしようとしています。 Aさんは a [m] 地点、Bさんは b [m] 地点、Cさんは c [m] 地点にいます。 二人の人間は、距離が d [m] 以内のとき直接会話が出来ます。 AさんとCさんが直接的、あるいは間接的に会話ができるか判定してください。 ただしAさんとCさんが間接的に会話ができるとは、AさんとBさんが直接会話でき、かつBさんとCさんが直接会話できることを指します。
制約
・ 1 <= a, b, c <= 100
・ 1 <= d <= 100
・ 入力はすべて整数

要約
直線状の3点a, b, cが距離dにおいて、|a-c| <= d か |a-b| <= d かつ |b-c| <= d の時を求めよ

解答

a, b, c, d = map(int, input().split())
if abs(a-c) <= d:
    print('Yes')
elif abs(a-b) <= d and abs(b-c) <= d:
    print('Yes')
else:
    print('No')

要約をそのままリーダブルコード化

>>> a, b, c, d = map(int, input().split())
4 7 9 3
>>> print(a, b, c, d)
4 7 9 3
>>> a, b, c, d = map(int, input().split(','))
2,3,5,8
>>> print(d, c, b, a)
8 5 3 2

mapやsplitやprintが便利でいろいろできる

短いけど以上!

この記事が気に入ったらサポートをしてみませんか?