Universal Cup Judging System

Universal Cup

時間限制: 2.0 s 記憶體限制: 1024 MB 總分: 100 可 Hack ✓
统计

Lupa は、液体をある容器から別の容器へ移すのが大好きです。

Lupa は普通の透明なボトルを $n$ 本と、特別な透明なボトルを 1 本持っています。普通のボトルの高さはそれぞれ $w$ で、底の高さは $0$、上端の高さは $w$ です。特別なボトルの高さは $2w$ です。

最初、すべてのボトルには、同じ隠された整数の高さ $x$ までジュースが入っています。ただし $0 \le x \le w$ です。Lupa は $x$ の値を知りません。

普通のボトルは、暗い色のラベルで一部が覆われています。$i$ 番目の普通のボトルでは、ラベルは高さ $l_i$ から $w$ までのすべての部分を覆っています。したがって、このボトルのジュースの液面が Lupa に見えるのは、その高さが $l_i$ より厳密に低い場合に限ります。

特別なボトルには異なるラベルが付いており、高さ $0$ から $w$ までのすべての部分を覆っています。したがって、特別なボトルのジュースの液面が Lupa に見えるのは、その高さが $w$ より厳密に高い場合に限ります。

Lupa は隠された値 $x$ を一意に特定したいと考えています。

Lupa はジュースを注ぐ操作を行うことができます。1 回の操作では、普通のボトルを 1 本と非負整数の量 $p$ を選び、その普通のボトルから特別なボトルへ、ちょうど $p$ 単位のジュースを注ぎます。操作のたびに、Lupa は上記のラベルの条件に従って、見えるすべてのジュースの液面を観察します。

ただし、Lupa は実行不可能である可能性がある操作を行うことはできません。より正確には、操作を選ぶ前に、それまでのすべての観察と矛盾しない $x$ の値すべてを考えます。選んだボトルから $p$ 単位を注ぐ操作が許されるのは、そのような可能な $x$ の値のどれに対しても、そのボトルに少なくとも $p$ 単位のジュースが入っている場合に限ります。

Lupa の戦略は適応的でもかまいません。つまり、次の操作は、それまでの操作の後に得られた観察結果に応じて決めてもかまいません。観察結果によって $x$ の値が一意に特定されたら、すぐに操作をやめます。

隠された値 $x$ がどのような値であっても、$x$ を特定できることを保証するために必要な操作回数の最小値を求めてください。

入力

1 行目には、普通のボトルの本数とその高さを表す 2 つの整数 $n$ と $w$ ($1 \le n \le 10^6$、$2 \le w \le 10^{18}$) が与えられます。

2 行目には、普通のボトルの暗い色のラベルの下端の高さを表す $n$ 個の整数 $l_1, l_2, \ldots, l_n$ ($1 \le l_i < w$) が与えられます。

出力

$x$ を特定できることを保証するために必要な操作回数の最小値を表す整数を 1 つ出力してください。

入出力例

入力 1

3 34
1 2 4

出力 1

3

注記

problem_20257_45b592c6589d7c2c3e22f4ae41ed56d0.png

最初のテストでは、ラベルの下端が $4$ のボトルを考えます。$x < 4$ なら、操作をする前からその液面が見えるため、$x$ はすでに分かっています。したがって、$4 \le x \le 34$ と仮定します。

まず Lupa は、ラベルの下端が $4$ のボトルから特別なボトルへ $4$ 単位を注ぎます。

この操作の後、$x < 8$ なら、このボトルの液面の高さは $x - 4 < 4$ なので、液面が見え、$x$ が特定されます。$x > 30$ なら、特別なボトルの液面の高さは $x + 4 > 34$ なので、液面が見え、$x$ が特定されます。したがって、まだ特定されていない可能性がある値は $8 \le x \le 30$ だけです。

次に Lupa は、同じボトルからさらに $4$ 単位を注ぎます。

この操作の後、$x < 12$ なら、このボトルの液面の高さは $x - 8 < 4$ なので、液面が見え、$x$ が特定されます。$x > 26$ なら、特別なボトルの液面の高さは $x + 8 > 34$ なので、液面が見え、$x$ が特定されます。したがって、まだ特定されていない可能性がある値は $12 \le x \le 26$ だけです。

最後に Lupa は、ラベルの下端が $2$ のボトルから $12$ 単位を注ぎます。

この操作の後、$x < 14$ なら、このボトルの液面の高さは $x - 12 < 2$ なので、液面が見え、$x$ が特定されます。$x > 14$ なら、特別なボトルの液面の高さは $x + 20 > 34$ なので、液面が見え、$x$ が特定されます。残る値は $x = 14$ だけなので、この場合も特定されます。

このように、3 回の操作の後には、Lupa は確実に $x$ を特定できます。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.