回答編集履歴

1

アルゴリズムに誤りがありましたので、修正しました。

2023/05/19 03:00

投稿

tatsu99
tatsu99

スコア5493

test CHANGED
@@ -1,10 +1,10 @@
1
1
  直接ゴールに達するまでの時間を算出する方法です。
2
2
  亀の場合、1Kmにつきk分なので、G×k分 かかる。
3
3
  うさぎの場合、1Kmにつきu分 かかり、aKmにつきb分休憩なので、
4
- aKm進むにはa×u+b 分かかる、但し、ゴールがaKm以内ならb分休憩は不要になる。
4
+ aKm進むにはa×u+b 分かかる、但し、ゴールがaKmで割り切れるなら最後の休憩は不要になる。
5
5
  よって、
6
- G÷aが1未満の場合は、(G÷aの余り)× u 分 かかる。
6
+ G÷aの余りの場合は、(G÷aの商-1(a*u+b) + a*u 分かかる。
7
- G÷aが1以上の場合は、1回目は、u×a分 かかり、以降はu×ab分かかる、更に(G÷aの余り)× u 分 かかる。
7
+ G÷a余り0でない場合は、(G÷aの商)×(a*u+b)G÷aの余り×u 分かかる。
8
8
  上記をコードにすると以下のようになります。
9
9
  ```python3
10
10
  G = int(input())
@@ -21,10 +21,10 @@
21
21
 
22
22
  kame = G * k
23
23
  remain = G % a
24
- if (G//a) > 0:
24
+ if remain == 0:
25
- usagi = ((G//a) -1 ) * (a*u + b) + a*u +remain*u
25
+ usagi = ((G//a) -1 ) * (a*u + b) + a*u
26
26
  else:
27
- usagi = remain*u
27
+ usagi = (G//a) * (a*u + b) + remain*u
28
28
 
29
29
  print("usagi=",usagi,"kame=",kame,"remain=",remain) #参考用
30
30
 
@@ -34,6 +34,8 @@
34
34
  print("USAGI")
35
35
  else:
36
36
  print("KAME")
37
+
38
+
37
39
  ```
38
40
  実行結果
39
41
  10