ABC099-B - Stone Monument を解く
ABC099-B - Stone Monument
1本目の柱と2本目の柱の高低差は2m、2本目と3本目の柱の高低差は3m、
3本目と4本目の高低差は4m … というように
高低差は1mずつ大きくなっていっているので
2本の柱の高低差を知ることでそれらの柱が何番目の柱か計算することができる
数学的に計算して解くことも可能だが
柱は999本しかないため、端から計算していこうと思う
以上を踏まえて書いたコードを以下に示す
提出したコード
# 入力 a,b=map(int,input().split()) # 柱の高さ(1本目) x1=1 # 高低差(0本目との差は1なので1から) y=1 for i in range(998): # 高低差を+1 y+=1 # 2本目の高さを求める x2=x1+y # 2本の高低差が一致した場合 if x2-x1==b-a: # 足りない長さが積雪量(x2-bでも可) print(x1-a) break # 次の比較のために1本目の柱の高さを更新 x1=x2
提出結果はACでした
数学的な解説も知りたい方は解説PDFの方をどうぞご覧ください
AtCoder Beginner Contest 099 解説