浇花
描述
小明养了n盆花,编号从1到n。他每天会选择一个区间[l, r],给编号从l到r的每盆花浇一次水。请问在m天后,被浇过i(1 ≤ i ≤ m)次水的花的数量依次是多少。
输入
第一行两个整数n和m,表示花的数量和浇花天数;接下来m行,每行两个整数l和r,表示小明每天的浇水区间。
输出
一行,共m个数字,空格隔开,以此表示被浇过1次、2次、……、m次的花的数量。
样例输入
10 3
1 4
2 4
4 9
样例输出
6 2 1
数据范围
1 ≤ l ≤ r ≤ n ≤ 10^5
1 ≤ m ≤ 10^5
这个题不难,但是要保证满足他的取值
代码:
#include <iostream>
using namespace std;
int main(){
int n,m,l,r,a=0,b[100001]={},c[100001]={};
cin>>n>>m;
for (int i = 1; i <=m; i++){
cin>>l>>r;
b[l]++;
b[r+1]--;
}
for (int i = 1; i <=n; i++){
a+=b[i];
c[a]++;
}
for(int i=1;i<=m;i++) cout<<c[i]<<" ";
return 0;
}