#include<bits/stdc++.h>
using namespace std;
const int MAXN=100005;
int n,m,d2[MAXN],l,r,a,k;
void add(int l,int r,int a,int k)
{
d2[l]+=a;
d2[l+1]+=k-a;
d2[r+1]-=(r-l+1)*k+a;
d2[r+2]-=(l-r)*k-a;
}
void pre_sum()
{
for(int i=1;i<=n;++i)
{
d2[i]+=d2[i-1];
}
}
int main()
{
scanf("%d %d",&n,&m);
for(int i=1;i<=m;++i)
{
scanf("%d %d %d %d",&l,&r,&a,&k);
add(l,r,a,k);
}
pre_sum();
pre_sum();
for(int i=1;i<=n;++i)
{
printf("%d%c",d2[i],i==n?‘\n‘:‘ ‘);
}
return 0;
}
原文:https://www.cnblogs.com/hgangang/p/12288433.html