CF1919F2.Wine Factory (Hard Version)
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
This is the hard version of the problem. The only difference between the two versions is the constraint on ci 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 ai liters of water and has a wizard with power bi in front of it. Furthermore, for each 1≤i≤n−1 , there is a valve connecting water tower i to i+1 with capacity ci .
For each i from 1 to n in this order, the following happens:
- The wizard in front of water tower i removes at most bi liters of water from the tower and turns the removed water into wine.
- If i=n , at most ci 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 ap:=x , bp:=y and cp:=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.
输入格式
The first line contains two integers n and q ( 2≤n≤5⋅105 , 1≤q≤5⋅105 ) — the number of water towers and the number of updates.
The second line contains n integers a1,a2,…,an ( 0≤ai≤109 ) — the number of liters of water in water tower i .
The third line contains n integers b1,b2,…,bn ( 0≤bi≤109 ) — the power of the wizard in front of water tower i .
The fourth line contains n−1 integers c1,c2,…,cn−1 ( 0≤ci≤1018 ) — 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≤p≤n , 0≤x,y≤109 , 0≤z≤1018 ) — the updates done to arrays a , b and c .
Note that cn does not exist, so the value of z does not matter when p=n .
输出格式
Print q lines, each line containing a single integer representing W(a,b,c) after each update.
输入输出样例
输入#1
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
输出#1
11 8 5
输入#2
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
输出#2
31 25 29 21 23
说明/提示
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.