ARC085 D - ABS
解法
シミュレーションをします。まず、前提として、どちらかはかならずを最後にもっています。
次にXのターンだとします。
このとき、Xはをとってゲームを終わらせることができます。このときの答えをpとしておきます(これは、現在のYの手札と、の差の絶対値です)。
このターンにを選んで手札にするとなると、次のターン相手は以降を選ばなければなりません。
しかし、自分がを選び、次のターン相手がを選んだ時に、自分がではなくを選んだ場合の方がいい結果だった、ということを阻止しなければなりません。
なので、以降で、との差の絶対値がpより小さいようなは存在してはいけません。
これはYについても、大小関係を入れ替えて全く同じことが言えます。
なので、これらをシミュレーションしてターンを繰り返していけば、答えが求まります。
どちらかがを選んだ時に、次の人がを選んでゲームを終了する条件を書き忘れないようにしましょう。
と、このシミュレーションにはもう1段階続きが存在します。
実は、先ほどのの選び方は、実は最初のXのターンの時点でかを選ぶ2通りしか存在しません。なので、答えはで求めることができ、
になります。
これで通したコードはこちらになります。