区间修改
题目描述
给定一个序列,序列里有N个数,进行M次操作,每次把[l,r]区间的数加上 x。
输出经过M次操作后的序列。
输入格式
第一行两个整数,分别为N,M
第二行N个数,代表初始序列。
接下来M行每行三个数,代表l,r,x。
输出格式
输出为N个数,代表经过M次操作后的序列。
样例 #1
样例输入 #1
3 2
1 2 3
1 1 1
1 3 3
样例输出 #1
5 5 6
提示
【数据规模】
对于100%的数据
1<=N<=100000
1<=M<=10000
1<=l<=r<=N
abs(x)<=1000
代码附上
#include <iostream>
using namespace std;
int main(){
int n,m,l,r,x,a[100001]={0};
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=m;i++){
cin>>l>>r>>x;
for(int j=l;j<=r;j++){
a[j]=a[j]+x;
}
}
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
}
评测结果