Universal Cup Judging System

Universal Cup

Límite de tiempo: 2.0 s Límite de memoria: 1024 MB Puntuación total: 100 Hackeable ✓
Estadísticas

A Lupa le encanta trasvasar líquidos de un recipiente a otro.

Lupa tiene $n$ botellas transparentes ordinarias y una botella transparente especial. Cada botella ordinaria tiene una altura de $w$: su fondo está al nivel $0$ y su parte superior está al nivel $w$. La botella especial tiene una altura de $2w$.

Inicialmente, todas las botellas están llenas de zumo hasta el mismo nivel entero oculto $x$, donde $0 \le x \le w$. Lupa no conoce el valor de $x$.

Las botellas ordinarias están parcialmente cubiertas por etiquetas oscuras. En la $i$-ésima botella ordinaria, la etiqueta cubre todos los niveles desde $l_i$ hasta $w$. Por tanto, Lupa puede ver el nivel del zumo en esta botella si y solo si está estrictamente por debajo de $l_i$.

La botella especial tiene una etiqueta diferente: cubre todos los niveles desde $0$ hasta $w$. Por tanto, Lupa puede ver el nivel del zumo en la botella especial si y solo si está estrictamente por encima de $w$.

Lupa quiere determinar de forma única el valor oculto $x$.

Lupa puede realizar trasvases. En un trasvase, elige una de las botellas ordinarias y una cantidad entera no negativa $p$, y vierte exactamente $p$ unidades de zumo de esa botella ordinaria a la botella especial. Después de cada trasvase, Lupa observa todos los niveles de zumo que sean visibles según las etiquetas descritas anteriormente.

Sin embargo, Lupa no puede realizar un trasvase que pudiera ser imposible. Más precisamente, antes de elegir un trasvase, se consideran todos los valores de $x$ que siguen siendo compatibles con todas las observaciones realizadas hasta ese momento. El trasvase de $p$ unidades desde la botella elegida solo está permitido si, para cada uno de esos posibles valores de $x$, dicha botella contiene al menos $p$ unidades de zumo.

La estrategia de Lupa puede ser adaptativa: el siguiente trasvase puede depender de las observaciones obtenidas después de los trasvases anteriores. Se detiene en cuanto las observaciones determinan de forma única el valor de $x$.

Encuentra el número mínimo de trasvases que garantiza determinar $x$, sea cual sea el valor oculto $x$.

Entrada

La primera línea contiene dos enteros $n$ y $w$ ($1 \le n \le 10^6$, $2 \le w \le 10^{18}$): el número de botellas ordinarias y su altura.

La segunda línea contiene $n$ enteros $l_1, l_2, \ldots, l_n$ ($1 \le l_i < w$): los niveles inferiores de las etiquetas oscuras de las botellas ordinarias.

Salida

Imprime un entero: el número mínimo de trasvases necesarios para garantizar que se determina $x$.

Ejemplos

Entrada 1

3 34
1 2 4

Salida 1

3

Nota

problem_20257_aa575747612b369cb81859b3795b06e5.png

En el primer caso de prueba, considera la botella con etiqueta $4$. Si $x < 4$, su nivel de zumo es visible antes de cualquier trasvase, así que $x$ ya es conocido. Por tanto, supongamos que $4 \le x \le 34$.

Lupa primero vierte $4$ unidades de la botella con etiqueta $4$ a la botella especial.

Después de este trasvase, si $x < 8$, el nivel en esta botella es $x - 4 < 4$, por lo que es visible y determina $x$. Si $x > 30$, el nivel en la botella especial es $x + 4 > 34$, por lo que es visible y determina $x$. Por tanto, solo los valores $8 \le x \le 30$ pueden seguir siendo desconocidos.

A continuación, Lupa vierte otras $4$ unidades de la misma botella.

Después de este trasvase, si $x < 12$, el nivel en esta botella es $x - 8 < 4$, por lo que es visible y determina $x$. Si $x > 26$, el nivel en la botella especial es $x + 8 > 34$, por lo que es visible y determina $x$. Por tanto, solo los valores $12 \le x \le 26$ pueden seguir siendo desconocidos.

Por último, Lupa vierte $12$ unidades de la botella con etiqueta $2$.

Después de este trasvase, si $x < 14$, el nivel en esta botella es $x - 12 < 2$, por lo que es visible y determina $x$. Si $x > 14$, el nivel en la botella especial es $x + 20 > 34$, por lo que es visible y determina $x$. El único valor restante es $x = 14$, así que también queda determinado.

Así, después de 3 trasvases, Lupa tiene garantizado determinar $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.