ABC137-B - One Clue を解く
ABC137-B - One Clue
数直線上に 2000001 個の石が置かれている
石の座標は -1000000, -999999, -999998, ... , 999999, 1000000 である
これらの石の内、連続する K 個が黒で塗られており
それ以外は白で塗られている
座標 X が黒であることがわかっているとき
黒で塗られている可能性のある座標を全て求めて、小さい順に出力する
まずは、黒で塗られている座標 X の石は
連続する K 個の石のどの順番の石であるか考えてみる
例えば、左端の石であった場合、その右にある K - 1 個の石も黒であるとわかる
右端の石であった場合も同様に、その左にある K - 1 個の石も黒となる
したがって、X - ( K - 1 ) 〜 X + ( K - 1 ) の範囲を
全て出力すればそれが答えになると考えられる
ただし、石の座標は -1000000, -999999, -999998, ... , 999999, 1000000
と範囲に制限があるので、上記の範囲がこの制限内に納まることを
チェックする必要がある
以上を踏まえて書いたコードを以下に示す
提出したコード
# 入力 K,X=map(int,input().split()) # 左端・右端を求める l=X-(K-1) r=X+(K-1) # 左端・右端が制限をオーバーする場合は置き換える if l<-1000000: l=-1000000 if 1000000<r: r=1000000 ans=[] for i in range(l,r+1): ans.append(i) # 出力 print(' '.join(str(x) for x in ans))
提出結果はACでした