This is the hard 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:
- 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. - 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}$ ($0 \le c_i \color{red}{\le} 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$, $0 \le z \color{red}{\le} 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.
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. Even though there are$2$liters of water remaining, only$1$liter of water can flow into tower 4. - When
$i = 4$, there are$4$liters of water in tower 4. All$4$liters of water are turned into wine.
Hence, $W(a,b,c)=1 + 4 + 2 + 4 = 11$ after the first update.
The second update modifies the arrays to $a = [3, 5, 3, 3]$, $b = [1, 1, 2, 8]$, and $c = [5, 1, 1]$.
- 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. Even though there are$6$liters of water remaining, only$1$liter of water can flow to tower 3. - When
$i = 3$, there are$4$liters of water in tower 3 and$2$liters of water is turned into wine. Even though there are$2$liters of water remaining, only$1$liter of water can flow into tower 4. - When
$i = 4$, there are$4$liters of water in tower 4. All$4$liters of water are turned into wine.
Hence, $W(a,b,c)=1 + 1 + 2 + 4 = 8$ after the second update.
The third update modifies the arrays to $a = [3, 5, 0, 3]$, $b = [1, 1, 0, 8]$, and $c = [5, 1, 0]$.
- 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. Even though there are$6$liters of water remaining, only$1$liter of water can flow to tower 3. - When
$i = 3$, there is$1$liter of water in tower 3 and$0$liters of water is turned into wine. Even though there is$1$liter of water remaining, no water can flow to tower 4. - When
$i = 4$, there are$3$liters of water in tower 4. All$3$liters of water are turned into wine.
Hence, $W(a,b,c)=1 + 1 + 0 + 3 = 5$ after the third update.
样例
4 3
3 3 3 3
1 4 2 8
5 2 1
4 3 8 1000000000
2 5 1 1
3 0 0 0
11
8
5
5 5
10 3 8 9 2
3 4 10 8 1
6 5 9 2
5 4 9 1
1 1 1 1
2 7 4 8
4 1 1 1
1 8 3 3
31
25
29
21
23
题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。