Universal Cup Judging System

Universal Cup

Limite de temps : 4 s Limite de mémoire : 512 MB Points totaux : 100 Hackable ✓
Statistiques

Esta es otra versión del problema A, All the Trades Are the Best. En esta versión, cada período de trabajo tiene su propio límite de transacciones y está contenido por completo en un solo día. No se exige que los períodos de trabajo se generen aleatoriamente.

Eres un operador de una empresa de inversiones. Un día descubres que la acción de cuya negociación eres responsable sigue un patrón diario que se repite exactamente: el día se divide en $n$ intervalos de tiempo iguales, y el precio de la acción durante el $i$-ésimo intervalo siempre es $a_i$. Al terminar el $n$-ésimo intervalo de un día, comienza inmediatamente el primer intervalo del día siguiente, y el precio pasa de $a_n$ a $a_1$. ¡Esta es una oportunidad única en la vida: si compras y vendes durante tu horario de trabajo siguiendo este patrón que ya has descubierto, tienes una forma garantizada de obtener beneficios!

Se te dan $q$ períodos de trabajo independientes. El $i$-ésimo período comienza en el intervalo $l_i$ y termina en el intervalo $r_i$, incluidos ambos extremos, donde $l_i\le r_i$. Los intervalos en orden cronológico son $l_i,l_i+1,\ldots,r_i$.

En el $i$-ésimo período de trabajo puedes realizar como máximo $k_i$ transacciones. Cada transacción consiste en comprar una acción y venderla en un intervalo de tiempo posterior, con un beneficio igual al precio de venta menos el precio de compra. Puedes tener como máximo una acción a la vez, por lo que debes vender tu acción actual antes de comprar otra. Todas las compras y ventas deben realizarse dentro de ese período de trabajo y seguir el orden cronológico anterior. También puedes no realizar ninguna transacción y obtener un beneficio de $0$.

Para cada período de trabajo, encuentra de forma independiente el máximo beneficio total que puedes obtener.

Entrada

La primera línea contiene dos enteros $n,q$ ($1\le n\le 10^5$, $1\le q\le 10^5$): el número de intervalos de tiempo de un día y el número de períodos de trabajo, respectivamente.

La segunda línea contiene $n$ enteros $a_1,a_2,\ldots,a_n$ ($1\le a_i\le 10^6$), donde $a_i$ es el precio de la acción en el $i$-ésimo intervalo de tiempo de cada día.

Cada una de las siguientes $q$ líneas contiene tres enteros $l_i,r_i,k_i$ ($1\le l_i\le r_i\le n$, $0\le k_i\le \lfloor(r_i-l_i+1)/2\rfloor$), que describen el $i$-ésimo período de trabajo y su límite de transacciones.

No hay ninguna garantía de aleatoriedad para los períodos de trabajo ni para sus límites de transacciones.

Salida

Imprime $q$ líneas. La $i$-ésima línea debe contener un entero: el máximo beneficio que puedes obtener durante el $i$-ésimo período de trabajo realizando como máximo $k_i$ transacciones.

Ejemplos

Entrada 1

6 7
3 1 4 1 5 9
1 6 1
1 6 2
1 6 3
2 5 1
2 5 2
4 4 0
1 6 0

Salida 1

8
11
11
4
7
0
0

Nota

En la primera consulta, compra en el intervalo $2$ y vende en el intervalo $6$, obteniendo $9-1=8$.

En la segunda consulta, compra en el intervalo $2$, vende en el intervalo $3$, vuelve a comprar en el intervalo $4$ y vende en el intervalo $6$. El beneficio total es $(4-1)+(9-1)=11$. Permitir una tercera transacción en la tercera consulta no aumenta el beneficio máximo.

En la sexta y la séptima consultas, $k_i=0$, por lo que no se permite ninguna transacción y la respuesta es $0$.

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.