琴团长带领着一群胡桃准备出征,进攻丘丘人,出征前,琴团长根据不同胡桃的战力,发放原石作为军饷,琴团长分批次发放,每批次会给连续的几个胡桃发放相同的原石,琴团长最后想知道给每个胡桃发放了多少原石?
输入格式:
第一行两个整数N(<=100000)、M,表示胡桃的数量和琴团长发放原石的批次数。
接下来M行,每行三个整数,X,Y,K。在第X个胡桃到第Y个胡桃之间发放K个原石。
输出格式:
一行N个数,第i个数表示第i个胡桃拿到的原石数,结果不超过长整型。
输入样例:
5 3
1 2 1
2 3 2
2 5 3
输出样例:
在这里给出相应的输出。例如:
1 6 5 3 3
代码:
#include<bits/stdc++.h>
using namespace std;
int a[100005],b[100005];
int main(){int n,m;cin>>n>>m;while(m--){int x,y,z;cin>>x>>y>>z;b[x] += z;b[y+1] -= z;}for(int i = 1;i<=n;i++){a[i] = a[i-1]+b[i];}for(int i = 1;i<=n;i++){cout<<a[i]<<" ";}
}