时间限制: 1Sec 内存限制: 128MB 提交: 231 解决: 69
题目描述
小朋友排成一排,老师给他们分苹果。
小朋友从左到右标号1…N。有M个老师,每次第i个老师会给第Li个到第Ri个,一共Ri-Li+1个小朋友每人发Ci个苹果。
最后老师想知道每个小朋友有多少苹果。
数据规模和约定
100%的数据,N、M≤100 000,1≤Li≤Ri≤N,0≤Ci≤100。
输入
第一行两个整数N、M,表示小朋友个数和老师个数。
接下来M行,每行三个整数Li、Ri、Ci,意义如题目表述。
输出
一行N个数,第i个数表示第i个小朋友手上的水果。
样例输入
5 3
1 2 1
2 3 2
2 5 3
样例输出
1 6 5 3 3
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 const int maxn = 100000; 5 int d[maxn]; 6 int main() 7 { 8 int n,m; 9 int a,b,c; 10 cin>>n>>m; 11 while(m--){ 12 cin >> a>> b>> c; 13 d[a] += c; 14 d[b+1] -= c; 15 } 16 for(int i = 1; i <= n; i++){ 17 d[i] += d[i-1]; 18 cout << d[i]<<' '; 19 } 20 return 0; 21 }