Caída en un Sueño
Sora está acostumbrado a pasar las noches estudiando Programación Competitiva. Como la OCI está cada vez más cerca lleva varias noches seguidas sin dormir mucho, por lo que la noche antes de la competencia terminó durmiéndose en medio de su entrenamiento.
En su sueño, Sora está en una ciudad donde hay copas de cristal en el cielo. Las copas están numeradas desde
hasta
. La resistencia de la copa
(
) es
.
Para poner a prueba a Sora, Sekai atacará el cielo veces. Los ataques estarán numerados desde
hasta
. El ataque
(
) ejercerá una fuerza positiva
sobre las copas en el rango
(
).
La diferencia entre dos listas y
(
) es otra lista cuyos elementos son todos los de
que no lo sean de
; es decir,
.
Cuando Sekai realiza un ataque con una fuerza inicial sobre una lista de
copas
, ocurrirá lo siguiente:
- Sea
la lista de todas las copas de
con una resistencia menor o igual que
:
.
- Todas las copas que pertenecen a
caerán al suelo y se romperán, por lo que
no seguirá conteniendo a esas copas:
.
- Las copas rotas ejercen una nueva fuerza
sobre las demás copas; esa fuerza será igual a la suma de cada una de sus resistencias:
.
- Si
es positiva, volver al paso 1 con
y
.
Sora restaurará el cielo y las copas caídas cada vez que un ataque termine, pero para ello necesita saber cuántas copas caerán después del ataque. Escribe un programa que para cada uno de los ataques de Sekai compute la cantidad de copas que caerán con ese ataque.
Entrada
La primera línea contiene dos enteros y
la cantidad de copas en el cielo y la cantidad de ataques que realizará Sekai, respectivamente.
La segunda línea contiene enteros
la resistencia de la copa
.
Le siguen líneas, la
ésima de esas líneas contiene tres enteros
,
y
la descripción del ataque
.
Salida
La salida debe contener líneas
la cantidad de copas que se cayeron tras cada ataque, en el orden que se realizaron.
Restricciones
para cada
tal que
para cada
tal que
para cada
tal que
Subtareas
Subtarea | Restricciones Adicionales | Puntos | Dependencias |
---|---|---|---|
La cantidad de elementos diferentes de |
|||
Ejemplos
Entrada 1
6 4
9 3 2 5 10 2
2 3 2
2 3 3
4 6 9
1 6 2
Salida 1
1
2
2
3
Los ataques de Sekai ocurren de la siguiente manera:
- Ataque
: Se ataca la lista de copas
con una fuerza inicial
.
- En el primer paso se cae la lista de copas
lo que provoca una nueva fuerza
. Por lo que quedaría la lista
y
.
- La nueva fuerza no es suficiente para hacer caer ninguna de las copas restantes y el ataque termina.
- En el primer paso se cae la lista de copas
En total cayó copa.
- Ataque
: Se ataca la lista de copas
con fuerza inicial
.
- En el primer paso se cae la lista de copas
lo que provoca una nueva fuerza
. Por lo que quedaría la lista
y
.
- No quedan más copas en la lista
y el ataque termina.
- En el primer paso se cae la lista de copas
En total cayeron copas.
- Ataque
: Se ataca la lista de copas
con fuerza inicial
.
- En el primer paso se cae la lista de copas
lo que provoca una nueva fuerza
. Por lo que quedaría la lista
y
.
- La nueva fuerza no es suficiente para hacer caer ninguna de las copas restantes y el ataque termina.
- En el primer paso se cae la lista de copas
En total cayeron copas.
- Ataque
: Se ataca la lista de copas
con fuerza inicial
.
- En el primer paso se cae la lista de copas
lo que provoca una nueva fuerza
. Por lo que quedaría la lista
y
.
- En el segundo paso se cae la lista de copas
lo que provoca una nueva fuerza
. Por lo que quedaría la lista
y
.
- La nueva fuerza no es suficiente para hacer caer ninguna de las copas restantes y el ataque termina.
- En el primer paso se cae la lista de copas
En total cayeron copas.
Comments