输入:
5 2
1 2 3 4 5
1 1 1 2
2 2 1 3
输出:
2 6 6 8 5
思路:差分 前缀和
include[HTML_REMOVED]
using namespace std;
long long a[400010],dd[400010],b[400010];
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i)
{
cin>>a[i];
b[i]=a[i]-a[i-1];
}
while(m–)
{
int x,c,d,l;
cin>>x>>c>>d>>l;
b[x]+=c,b[x+l]-=c;
dd[x+1]+=d,dd[x+l]-=d;
b[x+l]-=d*(l-1);
}
for(int i=1;i<=n;i) dd[i]+=dd[i-1];
for(int i=1;i<=n;i++)
{
b[i]+=b[i-1]+dd[i];
cout<<b[i]<<’ ‘;
}
}