差分例题 分苹果

时间限制: 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 }

 

上一篇:L253 Work and Pleasure


下一篇:AtCoder Grand Contest 020