タイトルリンク:https ://pintia.cn/problem-sets/14/problems/802
亀はうさぎと競い合います。ランニングフィールドは長方形のトラックで、トラックの脇のどこでも休むことができます。亀は毎分3メートル、うさぎは毎分9メートル進むことができます。うさぎは、亀の動きが遅いと考えており、間違いなく亀よりも優れていると考えています。したがって、10分ごとに、を振り返ってください。亀。亀を追い越していることに気付いた場合は、道路の脇にいます。一度に30分間休憩し、それ以外の場合は10分間走り続けます。亀は非常に激しく働き、休むことなく走ります。亀とうさぎが同じ開始点で同時に走り始めると仮定すると、T分後、どちらの亀とうさぎが速く走りますか?
入力形式:
ゲーム時間T(分)を1行で入力します。
出力形式:
ゲームの結果を1行で出力します。亀が出力@_@
に勝ち、ウサギが出力^_^
に勝ち、ネクタイが出力され-_-
ます。その後に1スペースが続き、勝者が走った距離が出力されます。
入力サンプル:
242
サンプル出力:
@_@ 726
問題解決のアイデア:
この質問のカメはいつも走っていますが、計算は簡単で、ウサギは難しいので、毎分細かくします。
この質問の主な難しさは、実際にはウサギが途中で30分間休んでいることだと思います。この「休息」はどのように達成する必要がありますか?最初にフラグを設定してウサギの状態を判断しようとしました。この方法は実行可能ですが、比較的複雑です。 、うさぎは休憩を開始する必要があるため、休憩を終了する時間を計算し、終了時間に達したら、うさぎのステータスを実行に変更します。比較的面倒。
うさぎは30分間休憩します。別の考え方では、うさぎはうさぎより30分長く走ります。つまり、うさぎはその場に留まり、亀の距離に90メートルを追加し、時間に30分を追加します。 、うさぎの「休息」を30分達成するために。入力からの時間が30分を超えているかどうかを判断するための判断もここに追加する必要があることに注意してください。30分を超えている場合は直接追加してください。30分未満の場合は計算を行う必要があります。残り時間に基づきます。
ACコード:
n = int(input()) #从控制台读取时间
wg, tz = 0, 0 #定义乌龟wg和兔子tz的初始运动距离为0
i = 1
while i <= n: #注意,此处不能用for i in range()
wg += 3 #因为range是对区间的数字一个一个遍历,无法起到修改时间的效果
tz += 9
if i % 10 == 0 and tz > wg: #跑了10分钟并且兔子超过了乌龟
if n - i >= 30: #距离比赛剩余时间是否超过30分钟
i += 30
wg += 90
else:
wg += ((n - i) * 3)
i = n
i += 1
if wg > tz: #判断谁赢了
print('@_@ {}'.format(wg))
elif tz > wg:
print('^_^ {}'.format(tz))
else:
print('-_- {}'.format(wg))