回答編集履歴

1

すこしゴタクを追加

2021/06/14 21:49

投稿

hope_mucci
hope_mucci

スコア4447

test CHANGED
@@ -12,7 +12,9 @@
12
12
 
13
13
  期待する答えは `1000000000000000002`になるはずですが、実行結果は `999999999999999999` になります。
14
14
 
15
- これは境界値の意地悪なケースで発生します。
15
+ これは意地悪な境界値ケースで発生します。テストケースにkillerとついていますが、おそらく「二分木探索での実装者を殺しに来る」意味合いなのかなと思います。問題文のミスリードを利用した引っ掛け問題です。
16
+
17
+
16
18
 
17
19
  A,Nともに取りうる値は10^18までですが、数列Aの最大数が10^6あるため、答えとなりうる値が最大で10^10+10^6あることになります。このプログラムでは答えとして取りうる値の最大値をright側に入れて開始していますが、最大値が実際に取りうる最大値に足りていないので答えとして10^18以上の数値が来た場合にこれ以上の数が探索できずにleftにひたすらmidが加算されていきます。最終的にright未満の数値である10^18-1までしかleftが増加しません。
18
20