質問: s+1010 #Bの一回目が限界値を越えていたら、Aの勝利 if water_b > b: print("A" + " " + water_a) #上記以降は交互に入れる else: while water_a < a: water_a += 1010 print(water_a) break #Bの一回目はクリアしたため、順次 1010リットルずつ足していく while water_b < b: water_b += 1010 print(water_b) break #出力値 1021 2021 ```
回答: 何回読んでもルールがよくわからなかったので(どこが双方の第一ターンなのかわからない)、とりあえず適当に書いたのを。 ``` s, a_max, b_max = map(int, input().split()) # initialize a_water = s b_water = 0 flag = True # 1st turn a_water += 10 if a_water > a_max and flag: winner = "B" last_water = b_water flag = False b_water += s + 10 if b_water > b_max and and flag: winner = "A" last_water = a_water flag = False if flag: # 2nd or later while True: a_water += 1010 if a_water > a_max: winner = "B" last_water = b_water break b_water += 1010 if b_water > b_max: winner = "A" last_water = a_water break print(winner, last_water) ``` ### 修正点について 最初のコードはこういう挙動になっておりました。 ``` 1 5 5 # 入力 B 11 # 出力 ``` こっちの方が望ましいと思うので直しました。 ``` 1 5 5 B 0 ```