ABC078-B - ISU を解く
ABC078-B - ISU
・席全体の幅がX
・人の幅がY
・席の端と人との間はZだけ空ける、人と人との間もZだけ空ける
以上の条件で最大何人の人が座れるか、という問題
まず、1人座るためには、両側にZの間隔が必要(2Z)で
人の幅分の長さ(Y)も必要なので、Y + 2Z の長さが必要になる
2人の場合は席の端からの間隔と、2人の間の間隔が必要(3Z)で
2人分の幅(2Y)も必要なので、2Y + 3Z の長さが必要になる
3人の場合も同様にして考えると、3Y + 4Z の長さが必要
4人の場合は、4Y + 5Z の長さが必要
5人の場合は、5Y + 6Z の長さが必要
…
上記を一般化すると、N人の場合は、NY + (N+1)Z の長さが必要ということになる
この式について、Nを1から試していって
X を超えたらその直前の N が答えということになる
以上を踏まえて書いたコードを以下に示す
提出したコード
# 入力 X,Y,Z=map(int,input().split()) N=1 while True: if N*Y+(N+1)*Z>X: break else: N+=1 # 出力 print(N-1)
提出結果はACでした