ABC093-B - Small and Large Integers を解く
ABC093-B - Small and Large Integers
A以上B以下の数の中で
小さい方からK番目以内 または 大きい方からK番目以内の数を
数が小さい順に列挙していく問題
A = 100 , B = 200 , K = 5 の場合なら
100〜104 の5個と、196〜200 の5個を列挙する
かなり簡単そうに見えるが、一つ落とし穴がある
それは、小さい方からの範囲と大きい方からの範囲が被っている場合である
この場合は、全体で 2 × K 個も数字がないので
与えられた数字全てが答えとなる
以上を踏まえて書いたコードを以下に示す
提出したコード
# 入力 A,B,K=map(int,input().split()) if B-A+1<2*K: # 範囲内の全数字を出力 for i in range(A,B+1): print(i) else: # 小さい方からK個出力 for i in range(A,A+K): print(i) # 大きい方からK個出力 for i in range(B-K+1,B+1): print(i)
提出結果はACでした