![]()
![]()
1 #include<bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 map<ll,int>mp;
5 const int N=1e6;
6 ll ans[N];
7 int main()
8 {
9 int m;
10 scanf("%d",&m);
11 for(int i=1;i<=m;i++)
12 {
13 ll l,r;
14 scanf("%lld%lld",&l,&r);
15 mp[l]++;mp[r+1]--;
16 }
17
18 ll sum=0,pre=-1;
19 for(auto &[v,d]:mp)
20 {
21 if(pre!=-1)ans[sum]+=v-pre;
22 sum+=d;
23 pre=v;
24 }//b[L]+d b[R+1]-d;对应原数组a[L]---a[R] +d;∑b[i]=a[1]-a[0]+a[2]-a[1]+...+a[i]-a[i-1]=a[i];//a[0]=0;
25 //对于端点 L,R a[L]---a[R]的区间改变量取决于a[L];
26 for(int i=1;i<=m;i++)printf("%lld ",ans[i]);
27 return 0;
28 }