AtCoder ABC 137 B – One Clue Python解説
One Clue
数直線上に 2000001 個の石が置かれています。
AtCoder Beginner Contest 「One Clue」
これらの石の座標は−1000000,−999999,−999998,…,999999,1000000 です。
これらの石のうち、ある連続する K 個の石が黒で塗られており、それ以外の石は白で塗られています。
また、座標 X にある石は黒で塗られていることが分かっています。
黒で塗られている石が置かれている可能性のある座標をすべて、小さい順に出力してください。
座標XのX-K+1とX+K-1を出力します。その際、座標Xが両端の座標を超えないか気を付けましょう。
k, x = map(int, input().split())
for i in range(x - k + 1, x + k):
if -1000000 <= i <= 1000000:
if i < x + k - 1:
print(i, end=" ")
else:
print(i)
先にX座標が両端の座標を超えていないか確認する方法もあります。
k, x = map(int, input().split())
l = max(-1000000, x - k + 1)
r = min( 1000000, x + k - 1)
for i in range(l, r + 1):
if i < r:
print(i, end=" ")
else:
print(i)
max関数とmin関数で座標の範囲を超えていないか確認し、そのあとで座標を出力しています。