#include <cstdio>
using namespace std;
const int maxn=100010;
int t[maxn*4],h[maxn];
int tl,tr,N,ans;
void Pre()
{
}
void Build(int k,int l,int r)
{
t[k]=0;
if (l==r)
{
h[l]=k;
return ;
}
int mid=(l+r)/2;
Build(k*2,l,mid);Build(k*2+1,mid+1,r);
}
void Color(int k,int l,int r)
{
if (r<tl) return ;
if (l>tr) return ;
if ((tl<=l)&&(r<=tr))
{
t[k]++;
return ;
}
int mid=(l+r)/2;
Color(k*2,l,mid);Color(k*2+1,mid+1,r);
}
int getsum(int x)
{
int re=0;
for (int i=h[x];i;i>>=1) re+=t[i];
return re;
}
void Work()
{
Build(1,1,N);
for (int i=1;i<=N;i++)
{
scanf("%d %d",&tl,&tr);
Color(1,1,N);
}
for (int i=1;i<N;i++)
{
ans=getsum(i);
printf("%d ",ans);
}
ans=getsum(N);
printf("%d\n",ans);
}
int main()
{
freopen ("a.in","r",stdin);
freopen ("a.out","w",stdout);
scanf("%d",&N);
while (N)
{
Pre();
Work();
scanf("%d",&N);
}
return 0;
}
HDU 1556
最新推荐文章于 2022-12-26 14:41:42 发布