311001: CF1919F1. Wine Factory (Easy Version)

Memory Limit:512 MB Time Limit:5 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

F1. Wine Factory (Easy Version)time limit per test5 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard output

This is the easy version of the problem. The only difference between the two versions is the constraint on $c_i$ and $z$. You can make hacks only if both versions of the problem are solved.

There are three arrays $a$, $b$ and $c$. $a$ and $b$ have length $n$ and $c$ has length $n-1$. Let $W(a,b,c)$ denote the liters of wine created from the following process.

Create $n$ water towers. The $i$-th water tower initially has $a_i$ liters of water and has a wizard with power $b_i$ in front of it. Furthermore, for each $1 \le i \le n - 1$, there is a valve connecting water tower $i$ to $i + 1$ with capacity $c_i$.

For each $i$ from $1$ to $n$ in this order, the following happens:

  1. The wizard in front of water tower $i$ removes at most $b_i$ liters of water from the tower and turns the removed water into wine.
  2. If $i \neq n$, at most $c_i$ liters of the remaining water left in water tower $i$ flows through the valve into water tower $i + 1$.

There are $q$ updates. In each update, you will be given integers $p$, $x$, $y$ and $z$ and you will update $a_p := x$, $b_p := y$ and $c_p := z$. After each update, find the value of $W(a,b,c)$. Note that previous updates to arrays $a$, $b$ and $c$ persist throughout future updates.

Input

The first line contains two integers $n$ and $q$ ($2 \le n \le 5\cdot 10^5$, $1 \le q \le 5\cdot 10^5$) — the number of water towers and the number of updates.

The second line contains $n$ integers $a_1, a_2, \ldots, a_n$ ($0 \le a_i \le 10^9$) — the number of liters of water in water tower $i$.

The third line contains $n$ integers $b_1, b_2, \ldots, b_n$ ($0 \le b_i \le 10^9$) — the power of the wizard in front of water tower $i$.

The fourth line contains $n - 1$ integers $c_1, c_2, \ldots, c_{n - 1}$ ($c_i \color{red}{=} 10^{18}$) — the capacity of the pipe connecting water tower $i$ to $i + 1$.

Each of the next $q$ lines contains four integers $p$, $x$, $y$ and $z$ ($1 \le p \le n$, $0 \le x, y \le 10^9$, $z \color{red}{=} 10^{18}$) — the updates done to arrays $a$, $b$ and $c$.

Note that $c_n$ does not exist, so the value of $z$ does not matter when $p = n$.

Output

Print $q$ lines, each line containing a single integer representing $W(a, b, c)$ after each update.

ExamplesInput
4 3
3 3 3 3
1 4 2 8
1000000000000000000 1000000000000000000 1000000000000000000
4 3 8 1000000000000000000
2 5 1 1000000000000000000
3 0 0 1000000000000000000
Output
12
12
10
Input
5 5
10 3 8 9 2
3 4 10 8 1
1000000000000000000 1000000000000000000 1000000000000000000 1000000000000000000
5 4 9 1000000000000000000
1 1 1 1000000000000000000
2 7 4 1000000000000000000
4 1 1 1000000000000000000
1 8 3 1000000000000000000
Output
34
25
29
21
27
Note

The first update does not make any modifications to the arrays.

  • When $i = 1$, there are $3$ liters of water in tower 1 and $1$ liter of water is turned into wine. The remaining $2$ liters of water flow into tower 2.
  • When $i = 2$, there are $5$ liters of water in tower 2 and $4$ liters of water is turned into wine. The remaining $1$ liter of water flows into tower 3.
  • When $i = 3$, there are $4$ liters of water in tower 3 and $2$ liters of water is turned into wine. The remaining $2$ liters of water flows into tower 4.
  • When $i = 4$, there are $5$ liters of water in tower 4. All $5$ liters of water are turned into wine.

Hence, $W(a,b,c)=1 + 4 + 2 + 5 = 12$ after the first update.

The second update modifies the arrays to $a = [3, 5, 3, 3]$, $b = [1, 1, 2, 8]$, and $c = [10^{18}, 10^{18}, 10^{18}]$.

  • When $i = 1$, there are $3$ liters of water in tower 1 and $1$ liter of water is turned into wine. The remaining $2$ liters of water flow into tower 2.
  • When $i = 2$, there are $7$ liters of water in tower 2 and $1$ liter of water is turned into wine. The remaining $6$ liters of water flow into tower 3.
  • When $i = 3$, there are $9$ liters of water in tower 3 and $2$ liters of water is turned into wine. The remaining $7$ liters of water flow into tower 4.
  • When $i = 4$, there are $10$ liters of water in tower 4. Only $8$ liters of water is turned into wine.

Hence, $W(a,b,c)=1 + 1 + 2 + 8 = 12$ after the second update.

The third update modifies the arrays to $a = [3, 5, 0, 3]$, $b = [1, 1, 0, 8]$, and $c = [10^{18}, 10^{18}, 10^{18}]$.

  • When $i = 1$, there are $3$ liters of water in tower 1 and $1$ liter of water is turned into wine. The remaining $2$ liters of water flow into tower 2.
  • When $i = 2$, there are $7$ liters of water in tower 2 and $1$ liter of water is turned into wine. The remaining $6$ liters of water flow into tower 3.
  • When $i = 3$, there are $6$ liters of water in tower 3 and $0$ liters of water is turned into wine. The remaining $6$ liters of water flow into tower 4.
  • When $i = 4$, there are $9$ liters of water in tower 4. Only $8$ liters of water is turned into wine.

Hence, $W(a,b,c)=1 + 1 + 0 + 8 = 10$ after the third update.

Output

题目大意:给定三个数组a、b、c,长度分别为n、n和n-1。定义W(a,b,c)为以下过程产生的酒的数量(升)。创建n个水塔,第i个水塔最初有a_i升水,有一个功率为b_i的巫师站在它前面。此外,对于每个1≤i≤n-1,有一个容量为c_i的阀门连接水塔i和水塔i+1。对于每个i从1到n,按顺序进行以下操作:

1. 水塔i前的巫师从塔中取出最多b_i升水,并将其转化为酒。
2. 如果i≠n,则水塔i中剩余的水通过阀门流入水塔i+1,流量最多为c_i。

有q个更新。在每次更新中,你将得到整数p、x、y和z,并更新a_p:=x、b_p:=y和c_p:=z。在每次更新后,找到W(a,b,c)的值。注意,对数组a、b和c的先前更新会持续影响未来的更新。

输入数据格式:

第一行包含两个整数n和q(2≤n≤5×10^5,1≤q≤5×10^5)——水塔的数量和更新的数量。

第二行包含n个整数a_1、a_2、…、a_n(0≤a_i≤10^9)——水塔i中的水量(升)。

第三行包含n个整数b_1、b_2、…、b_n(0≤b_i≤10^9)——水塔i前巫师的功率。

第四行包含n-1个整数c_1、c_2、…、c_{n-1}(c_i=10^18)——连接水塔i和水塔i+1的管道容量。

接下来的q行,每行包含四个整数p、x、y和z(1≤p≤n,0≤x、y≤10^9,z=10^18)——对数组a、b和c的更新。

输出数据格式:

打印q行,每行包含一个整数,代表每次更新后的W(a,b,c)的值。题目大意:给定三个数组a、b、c,长度分别为n、n和n-1。定义W(a,b,c)为以下过程产生的酒的数量(升)。创建n个水塔,第i个水塔最初有a_i升水,有一个功率为b_i的巫师站在它前面。此外,对于每个1≤i≤n-1,有一个容量为c_i的阀门连接水塔i和水塔i+1。对于每个i从1到n,按顺序进行以下操作: 1. 水塔i前的巫师从塔中取出最多b_i升水,并将其转化为酒。 2. 如果i≠n,则水塔i中剩余的水通过阀门流入水塔i+1,流量最多为c_i。 有q个更新。在每次更新中,你将得到整数p、x、y和z,并更新a_p:=x、b_p:=y和c_p:=z。在每次更新后,找到W(a,b,c)的值。注意,对数组a、b和c的先前更新会持续影响未来的更新。 输入数据格式: 第一行包含两个整数n和q(2≤n≤5×10^5,1≤q≤5×10^5)——水塔的数量和更新的数量。 第二行包含n个整数a_1、a_2、…、a_n(0≤a_i≤10^9)——水塔i中的水量(升)。 第三行包含n个整数b_1、b_2、…、b_n(0≤b_i≤10^9)——水塔i前巫师的功率。 第四行包含n-1个整数c_1、c_2、…、c_{n-1}(c_i=10^18)——连接水塔i和水塔i+1的管道容量。 接下来的q行,每行包含四个整数p、x、y和z(1≤p≤n,0≤x、y≤10^9,z=10^18)——对数组a、b和c的更新。 输出数据格式: 打印q行,每行包含一个整数,代表每次更新后的W(a,b,c)的值。

加入题单

上一题 下一题 算法标签: