#include<bits/stdc++.h>
using namespace std;
int n,m,a[200005],pos,len,p,d,diff[200005];
int main(){
cin>>n>>m;
for(int i=0;i<=n;i++){
a[i]=0;
diff[i]=0;
}
for(int i=1;i<=m;i++){
cin>>pos>>len>>p>>d;
int r=pos+len-1;
diff[pos]+=p;
diff[pos+1]+=d;
diff[r+1]-=(p+(r-pos)*d);
}
for(int i=1;i<=n;i++){
a[i]=a[i-1]+diff[i];
}
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
}
2 个赞
#include<bits/stdc++.h>
using namespace std;
int n,m,a[200005],pos,len,p,d,diff[200005],b[200005];
int main(){
cin>>n>>m;
for(int i=0;i<=n;i++){
a[i]=0;
diff[i]=0;
}
for(int i=1;i<=m;i++){
cin>>pos>>len>>p>>d;
int r=pos+len-1;
diff[pos]+=p;
diff[pos+1]+=d;
diff[r+1]-=(p+(r-pos)*d);
}
for(int i=1;i<=n;i++){
a[i]=a[i-1]+diff[i];
}
for(int i=1;i<=n;i++){
b[i]=b[i-1]+a[i];
cout<<b[i]<<" ";
}
return 0;
}
你试试
3 个赞
感激不尽
3 个赞
解决方案
2 个赞