#include <iostream>
using namespace std;
int main()
{
int n, k, begin, end;
int floors[100000];
cin >> n >> k;
for (int i = 0; i < n; ++i) {
floors[i] = 0;
}
for (int i = 0; i < k; ++i) {
cin >> begin >> end;
++floors[begin];
--floors[end];
}
int sum = 0;
for (int i = 0; i < n; ++i) {
sum += floors[i];
cout << sum << " ";
}
return 0;
}
Background
Special for beginners, ^_^
Description
李大志爸爸建地铁的工程挣了钱,所以买了很多地毯回来,给客厅铺了一层又一层地毯。
客厅正好是一个矩形,地毯的宽度和客厅一致,所以在长度上地毯会重叠,客厅的长度为 �n,李大志想知道每 1 米上覆盖了多少层地毯 ?
Format
Input
第一行 n,k, n表示客厅的长度, k表示地毯的个数。1≤n,k≤105
接下来 k行,每行有一个 [x,y], x,y 均为整数,表示第 i块地毯的起始位置和结束位置。0≤x<y≤105
Output
一行整数,第 i个数表示第 i米覆盖的地毯数。
Samples
输入数据 1
4 3
1 3
0 2
1 4
输出数据 1
1 3 2 1
Limitation
1s, 1024KiB for each test case.