ゆらのふなびと

競プロ, Python, C++

Codeforces Round #345 (Div. 2) A. Joysticks

ひっかかったので書いとく。

問題

Problem - A - Codeforces

解法。

問題をよく読む。終了条件は「チャージが0になったとき」だけではない。

Game continues while both joysticks have a positive charge. Hence, if at the beginning of minute some joystick is charged by 1 percent, it has to be connected to a charger, otherwise the game stops. If some joystick completely discharges (its charge turns to 0), the game also stops.

ゲームは両方のジョイスティックが正のチャージを持っている限り続く。従って、もし分のはじめにあるジョイスティックのチャージが1%となっていれば、それはチャージャーにつながれる必要があり、そうできなければゲームは終了する。あるジョイスティックのチャージが0となれば、その場合もゲームは終了する。

a, b = map(int, input().split())

if a < b:
    a, b = b, a

sm = 0
while a > 0 and b > 0:
    if a < b:
        a, b = b, a
    if a == b == 1:
        break
    sm += 1
    a -= 2
    b += 1
print(sm)

競プロの問題なら読解より内容で勝負してほしい、と思ってしまう。